Entity Framework

叙述:
            Entity Framework 是微软借鉴ORM思想开发自己的ORM框架,ORM就是将数据表与实体对象相互映射的一种思想。
            Entity Framework 的本质还是ADO.NET操作,只是它将ADO.NET封装的更加高级而已。

如何使用?
            1,创建实体对象模型。 916628-20161011152545055-446252813.png
            2.选择从数据库生成实体模型。这里的空模型是可以通过先建模然后根据模型数据库,他们之间可以相互映射,这也是ORM思想。
                916628-20161011152546571-1699178847.png
 
             在这里的时候可以选择需要映射的表了,选择了就会根据表创建实体类,还有存储过程,视图等等。都可以映射。
                    916628-20161011152547461-482816286.png
              都设置完成后,会生成一个edmx 的文件
              接下来展开这个文件,你会看到如下:
                916628-20161011152548852-1826222749.png

如何操作数据库?

            1.执行查询操作。
                916628-20161011152549743-601747447.png
 
 (1)创建上下文的对象,例如上面的图,上下文对象则是:
 
  
  1. TestDemoEntities2 te = new TestDemoEntities2();
(2)创建好上下文对象后,可以直接使用, 上下(文对象 .实体类)的方式来获取实体值!
 
   
  1. //直接遍历查询
  2. foreach (var item in te.UserMsg)
  3. {
  4. Console.WriteLine(item.Id + "\t" + item.Name);
  5. }
 
    
  1. //第二种查询方法。
  2. #region 实现查询功能的第二种方法,Linq 和List 集合
  3. TestDemoEntities2 tst1 = new TestDemoEntities2();
  4. IQueryable<UserMsg> linq = from user in tst1.UserMsg
  5. select user;
  6. List<UserMsg> uMsgs = new List<UserMsg>();
  7. foreach (var item in linq)
  8. {
  9. if (item.Id <1000001)
  10. {
  11. uMsgs.Add(item);
  12. }
  13. }
  14. foreach (var userList in uMsgs)
  15. {
  16. Console.WriteLine(userList.Id +"\t"+ userList.Name);
  17. }
  18. #endregion
二、删除数据:
    UserMsg 是对应数据库表的实体类,
    TestDemoEntities2 是上下文对象,以下是删除数据的2种写法,根据主键ID来删除数据,当数据库不存在要删除的ID的时候则会报错:
     916628-20161011152550399-1981854801.png
 
  
  1. //创建实体类对象
  2. UserMsg userMsg = new UserMsg();
  3. userMsg.Id = 10002;
  4. //上下文对象
  5. TestDemoEntities2 te = new TestDemoEntities2();
  6. te.UserMsg.Attach(userMsg);
  7. //第一种写法
  8. te.Entry(userMsg).State = System.Data.EntityState.Deleted;
  9. //第二种写法
  10. te.UserMsg.Remove(userMsg);
  11. int resultMsg = te.SaveChanges();
  12. Console.WriteLine(resultMsg);
三、修改数据
    1.创建对应数据库表的实体对象,或者查询获取一个实体对象。都行。
反正如果这个实体对象对应是 主键在数据库中找不到,那么就会报错如下:
     916628-20161011152551118-590809076.png
     2.使用上下文对象来管理实体类,修改状态为Update 然后 调用 SaveChenges();方法保存就OK了
 
   
  1. //创建实体类对象
  2. UserMsg userMsg = new UserMsg();
  3. userMsg.Id = 100011;
  4. userMsg.Name = "隔壁老王";
  5. userMsg.Sex = "男";
  6. userMsg.Age = 12;
  7. userMsg.Phone = "11232131421";
  8. //上下文对象
  9. TestDemoEntities2 te = new TestDemoEntities2();
  10. //将实体付到上下文里面管理
  11. te.UserMsg.Attach(userMsg);
  12. //把所有修改状态的实体生成:Update;
  13. te.Entry(userMsg).State = System.Data.EntityState.Modified;
  14. int resultMsg = te.SaveChanges();
  15. Console.WriteLine(resultMsg);
  16. Console.ReadKey();






转载于:https://www.cnblogs.com/BookCode/p/5e52f4817042f9c57951c51df793e451.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值