Entity Framework

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

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

如何操作数据库?

            1.执行查询操作。
            
 
 (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的时候则会报错:
    
  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.创建对应数据库表的实体对象,或者查询获取一个实体对象。都行。
反正如果这个实体对象对应是 主键在数据库中找不到,那么就会报错如下:
    
     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();






posted @ 2016-10-11 15:26  镹丶天  阅读(265)  评论(0编辑  收藏  举报

Throw new Exception("object not found");