系统很LOW,不想花太多时间来升级,可想做点什么,总是这也不行那也不行,更种安装要不就是vs版本太低,要不不支持低版本的mysql,调试起来很费时。用老版办法写代码又太费劲,还是想在现有的基础上找到在vs2010中针对mysql数据库使用ADO.net Entity Framework。费了很多时间实验,最后找到的方法其实很简。不需要单独安装mysql for vs(如果要装要1.1.4支持2010),在mysql-connector-net-6.6.5.msi中集成了mysql for vs2010。
好久没用,把EF最基本的东西都快忘光了,最基本的CRUD操作如下:
建一个数据库对象
SchoolEntities school = new SchoolEntities();
添加一条记录
public void Add(Student stu)
{
school.Students.Add(stu);
school.SaveChanges();
}
或
public void Add(Student stu)
{
school.Entry(stu).State = EntityState.Added;
school.SaveChanges();
}
添加多条数据
public void Add(List<Student> list)
{
school.Students.AddRange(list);
school.SaveChanges();
}
删除一条记录
public void Delete(Student stu)
{
school.Students.Remove(stu);
school.SaveChanges();
}
或
public void Delete2(Student stu)
{
school.Entry(stu).State = EntityState.Deleted;
school.SaveChanges();
}
删除多条记录
public void Delete(List<Student> list)
{
school.Students.RemoveRange(list);
school.SaveChanges();
}
或
public void Delete(List<Student> list)
{
foreach (var item in list)
{
school.Entry(item).State = EntityState.Deleted;
}
school.SaveChanges();
}
修改一条记录
public void Update(Student stu)
{
school.Entry(stu).State = EntityState.Modified;
school.SaveChanges();
}
修改多条记录
public void Update(List<Student> list)
{
foreach (var item in list)
{
school.Entry(item).State = EntityState.Modified;
}
school.SaveChanges();
}
修改单个列,比如只修改Name字段
public void Update(Student stu)
{
school.Students.Attach(stu);
school.Entry(stu).Property(s => s.Name).IsModified = true;
school.SaveChanges();
}
或
school.Entry(stu).Property("Name").IsModified = true;
查询全部Students
var list = school.Students.ToList();
根据条件查询
var stus1 = school.Students.Where(s => s.Name == "哈哈").ToList();
根据主键查询
var stu1 = school.Students.Find(2);
一条记录
var stu = school.Students.FirstOrDefault(s => s.Name == "哈哈");
另关于VS版本,如果要做人工智能,使用ML.NET最好选择2022版本。
标签:school,Students,Mysql5.7,VS2010,Entity,stu,SaveChanges,public,void From: https://www.cnblogs.com/5x19/p/16585723.html