EF的应用

匿名 (未验证) 提交于 2019-12-02 22:06:11



首先说明一下: 添加EF 之后,会自动的给程序添加实体类。

EF的增加:

首先实例化刚才添加的EF ,再用对象初始化器将自己要添加的对象实例化,然后使用EF添加再保存即可。案例:

EFDBEntities efdb = new EFDBEntities();         Students objStudent = new Students()         {             StudentName = "小明",             ClassId = 2,             Gender = "男"         };         efdb.Students.Add(objStudent);         int result = efdb.SaveChanges();

代码详解:

  • 首先实例化了 EF
  • 然后使用对象初始化器将自己要添加的对象实例化
  • 接下来用自己实例化的EF 添加一下刚才实例化后的对象
  • 最后保存到数据库中。

最后两部的解释:这两行代码看似是冗余的,但是实际上并不冗余,少了哪一行代码都不行。其中 第一行代码就是将这个对象添加到缓存中,但是并没有上交到数据库中,而第二行代码就提交到了数据库中,然后用一个int类型的参数接受执行的行数。


(修改)

想修改,就要先找到要修改的对象。

  • 首先还是实例化EF
  • 其次就是查找需要修改的学员的对象。 (由于修改中用到了查询,所以在这里就不介绍查询了。直接参照这个修改的查询就可以了。)
  • 修改各个属性的值
  • 提交保存

在这里用到了两种查询方式,用哪个都可以,完全看个人爱好。

首先将需要修改的对象 查询出来。

Students objStudent = efdb.Students.FirstOrDefault(s => s.StudentId == 1000006);

然后修改各个属性值就可以。

objStudent.StudentName = "张红利";         objStudent.PhoneNumber = "99999999";

修改完之后提交保存。

int result = efdb.SaveChanges();

另一种查询的方式

Students objStudent = (from s in efdb.Students                            where s.StudentId == 100006                            select s).First<Students>();

通过主键列获取对象信息。

Students objStudent = efdb.Students.Find(100006);

注意:find只能查询主键也就是id 然后获取整个对象。里面不能查询姓名等。

如果取的是第一个值:

Students objStudents = (from s in students select s).FirstOrDefault();

如果取得是唯一值:

objStudents = (from s in students select s).SingleOrDefault();

两者的区别:

第一个值:获取学员中的第一个对象.(可以是多个)  唯一值:如果查询结果只有一个.(必须是一个)  First()、FirstOrDefault() 异同: - 相同点:都用于获取结果集中的第一个元素      - 不同点:如果序列中不包含任何元素,前者返回null,后者返回默认值  Single()、SingleOrDefault()异同  - 相同点:都用于获取结果中的唯一元素  - 不同点:如果序列中不包含任何元素,前者返回null,后者返回默认值  - 特别注意:当数据源中包含多个元素时,这两个方法会产生异常。

(删除)

想删除,就要先找到要删除的对象。

  • 首先实例化EF
  • 查询需要删除的对象
  • 从数据库中删除这个对象。

首先需要找到需要删除的学员对象

Students objStudent = efdb.Students.FirstOrDefault(s => s.StudentId == 100015);

然后从集合中删除对象

efdb.Students.Remove(objStudent);

最后保存到修改。

int result = efdb.SaveChanges();

.Net Framework 支持的规范函数

文章来源: EF的应用
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!