vs2012中对于entity framework的使用

很久之前就听说过微软entity framewor的强大与便利,今天终于不手懒了,动手写了一些东西,但也遇到了一些问题。

实践步骤:

1.首先在vs2012中新建一个控制台应用程序

2.在项目中添加一个ado.net实体数据模型

3.在生成的空的ado.net实体数据模型界面中,设计数据表,并设置它们之间的关系。

4.右键“从模型生成数据库”,在这一步出了问题,始终没有直接生成成功(在低版本vs中一路顺风,没出现这问题),但是脚本生成是正确的,于是乎,直接用脚本在数据库中执行生成了。。。。(此处没搞明白,求大神指点)

5.在低版本的中习惯了看自动生成代码中生成的“数据上下文”和“实体类”了,今晚手贱了一把,微软默认的将“代码生成策略”定为无,我改成了“默认设置”,结果,提示各种重复,想了一下,明白了,是自己画蛇添足了,果断将“代码生成策略”改回无,ok,运行成功。

一:插入操作:

1 EducationEntitiesmode ef = new EducationEntitiesmode();//实例化上下文
2 
3             banji bj = new banji();//实例化实体类
4             bj.ID = 123;
5             bj.Number = 124;//给实体类的每个字段赋值
6             ef.Class集.Add(bj);//将实体类实例化的对象附加到相应的实体集中
7             ef.SaveChanges();

二:修改操作

1 EducationEntitiesmode ef = new EducationEntitiesmode();
2             banji bj=new banji();
3             bj.ID=654;
4             bj.Number=852;
5             ef.Class集.Attach(bj);
6             //ef.ObjectStateManager.ChangeObjectState(bj, EntityState.Modified);
7             ef.Entry(bj).State = System.Data.EntityState.Modified;
8             ef.SaveChanges();

可以看到,上面有一行是被注释掉的,相信用过低版本的同学一定很熟悉那句话,但在2012中却变的坑爹的消失了。查了一堆资料,好多人说要引用System.Data.Objects,好吧,我水了,找遍了引用都没看到这个引用。但是问题还不是得解决么。。。最后,两种解决办法:1.用注释掉那句的下边那句话来代替2.自己降级吧,从高版本的vs习惯奖回到低版本的vs习惯。就是删除文件下的所有.tt文件,然后,然后就是我在上边“画蛇添足”干的那件事情,把“代码生成策略”改为默认,ok,恭喜你回到你熟悉的entity framework.

三:查找多条记录

1 EducationEntitiesmode ef = new EducationEntitiesmode();
2             var db = from c in ef.Class集
3                      where c.ID > 123
4                      select c;
5             foreach (var item in db)
6             { 
7             //循环输出;
8             }

四:查找一条记录

1 EducationEntitiesmode ef = new EducationEntitiesmode();
2             var db = (from c in ef.Class集
3                      where c.ID == 123
4                      select c).FirstOrDefault();

五:删除一条记录

            EducationEntitiesmode ef = new EducationEntitiesmode();
            banji bj = new banji();
            bj.ID = 654;
            ef.Class集.Attach(bj);
            ef.Entry(bj).State = System.Data.EntityState.Deleted;
            ef.SaveChanges();

暂时就这些简单操作吧。自己的第一次entity framework,Mark一下,继续对ORM的学习。

 
原文地址:https://www.cnblogs.com/mhdtysp/p/3593089.html