zoukankan      html  css  js  c++  java
  • 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的学习。

     
  • 相关阅读:
    超时时间已到。在操作完成之前超时时间已过或服务器未响应 shiney
    C#的映射机制 shiney
    C#用OLEDB导入问题总结 shiney
    SQL中的isnull shiney
    单虚拟机搭建zookeeper集群
    shell与sqlplus交互
    servlet
    迷你MVVM框架 avalonjs 入门教程
    classpath 'com.android.tools.build:gradle:6.7
    new ArrayList json.parse
  • 原文地址:https://www.cnblogs.com/mhdtysp/p/3593089.html
Copyright © 2011-2022 走看看