首页 > 学院 > 开发设计 > 正文

EF DB数据库先行,的理解及其它与原生态SQL之间的互动

2019-11-11 04:19:25
字体:
来源:转载
供稿:网友

Entity Framework DBFirst,即(EF DBFirst)的使用

个人理解:微软吧数据库与对象,也就是dal与model两个层合并到了一起了,产生了一个中间件df(Entity Framework),其中的dbfirst,和动软自动生成的代码几乎一样其主要是用linq语句进行查询,插入,更新,删除,分别使用插入
   HBSIEntities entity = new HBSIEntities();            /*新建一个T_UserInfo表的实体,             * 即一个新行,为新行中的每一个字段赋值,             * 要明白,一个表可以看做一个实体,             * 表中的一行也可以看做一个实体*/            T_UserInfo userinforow = new T_UserInfo()            {                UserName = "bj",                Pwd = "123456",                NickName = "猪八戒",                Address = "高老庄",                Sfzh = "123452223333444423"            };            /*将新建的行实体添加到表实体中,             这个操作是在程序层面操作的,             * 并不会影响到数据库层面*/            entity.T_UserInfo.AddObject(userinforow);            /*将程序层面的实体的改变更新到数据源中,             通过这行代码,就会向数据库中添加一条数据*/            entity.SaveChanges();修改
 HBSIEntities entity = new HBSIEntities();            /*更改表的实体,注意在最后加上了“Id=7”,             标识要更改实体表T_UserInfo中Id=7的行实体,             为字段重新赋值即可*/            T_UserInfo userinforow = new T_UserInfo()            {                UserName = "zbj",                Pwd = "234567",                NickName = "二师兄",                Address = "高老庄",                Sfzh = "123452223333444423",                Id=7            };            /*将改变的行实体附加到表实体中,             注意此时只是在程序层面对表实体进行更改*/            entity.T_UserInfo.Attach(userinforow);            /*使用对象状态管理器ObjectStateManager             * 标识实体userinforow的状态为“更改”而不是“删除”,             EntityState有很多枚举值,可以自己查看,一看即懂*/            entity.ObjectStateManager.ChangeObjectState(userinforow,EntityState.Modified);            /*将程序层面的实体的改变更新到数据源中,             通过这行代码,就会更改数据库中对应表中的数据*/            entity.SaveChanges();删除先说删除,和更改很想,只需要改2点。第一是在创建行实体的时候里面只需为Id属性赋值即可,因为我们都是根据主键来删除的,知道别的字段的值没意义;第二就是更改EnrityState的枚举值为Delete即可,见代码
HBSIEntities entity = new HBSIEntities();                        T_UserInfo userinforow = new T_UserInfo()            {                                <span style="color:#ff0000;">Id = 7</span>            };                       entity.T_UserInfo.Attach(userinforow);                       entity.ObjectStateManager.ChangeObjectState(userinforow, <span style="color:#ff0000;">EntityState.Deleted</span>);            entity.SaveChanges();如何使用原生态呢,很简单
  ctx.Database.ExecuteNonQuery()总结,其实偷懒的不二法宝,但是进行复杂查询的时候需要借助sql原生态,比较合适,更新的时候每次更新很多数据,插入的时候也不能做到单独每个表单插入,要很完整的插入,所以说这个中间件能提高开发效率,但是执行效率比较一般,生成:http://www.myexception.cn/database/1839805.html原生态sql使用http://www.cnblogs.com/lgx5/p/5854887.html
上一篇:凌乱的yyy

下一篇:PAT BASIC 1004

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表