Entity Framework学习笔记

来源:互联网 发布:耽美网络电视剧百度云 编辑:程序博客网 时间:2024/05/22 04:24
抄一段概念:

ObjectContext封装 .NET Framework 和数据库之间的连接。此类用作“创建”、“读取”、“更新”和“删除”操作的网关。

ObjectContext 类为主类,用于与作为对象(这些对象为 EDM 中定义的实体类型的实例)的数据进行交交互。

它封装了EF 到数据库的连接,封装了表对应的实体的集合,所以我们所有的操作都应该是针对于ObjectContext下的实体集合,修改实体集合后,通过调用ObjectContext的SaveChange方法将对实体集合的操作映射回数据库。当然ObjectContext通过我们上面EDMX的定义,也就是表、实体的关系的xml定义,通过集合的变化,生成对应的SQL,并调用Ado.Net来实现对数据库的操作。


所以对于开发人员来说,EF的优势就是不需要对数据库SQL有过多的了解便可进行开发。


下面是具体的例子:

增加一个实体数据模型,命名空间为HRMSDevEntities,之后对EmployeeCer这个数据库做基本的增删改查


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.Entity;

namespace ConsoleApplication1
{
   public class Class1
    {
       public static HRMSDevEntities entity = new HRMSDevEntities();
      /// <summary>
      /// 查询所有
      /// </summary>
       public void output()
       {
           foreach (var item in entity.EmployeeCer)
           {
               Console.WriteLine(item.name);
           }
       }

       /// <summary>
       /// 根据ID查询一条数据
       /// </summary>
       public void getNamebyId(string id)
       {
            //使用Entity SQL Language进行查询
           EmployeeCer emp = entity.EmployeeCer.Where("it.emp_id='"+id+"'").First();
           Console.Write(emp.name);
           //使用Linq To Entities进行查询
          // IEnumerable<EmployeeCer> query = from emp in entity.EmployeeCer
          //                                   where emp.emp_id == id
          //                                  select emp;
        
           //foreach (EmployeeCer e in emp)
           //{
           //    Console.WriteLine(emp.name);
           //}
       }

      /// <summary>
      /// 增加一条数据
      /// </summary>
       public void Insert()
       {
           EmployeeCer cer = new EmployeeCer
           {
               name="TEST4",
               emp_id="03"
           };
           entity.EmployeeCer.AddObject(cer);
           entity.SaveChanges();          
       }

       /// <summary>
       /// 修改数据
       /// </summary>
       /// <param name="id"></param>
       public void Update(string id)
       {
           var EditEmp = entity.EmployeeCer.Single(em => em.emp_id == id);
           EditEmp.name = "TEST5";
           entity.SaveChanges();
       }

       public void Delete(string id)
       {
         // var EditEmp = entity.EmployeeCer.Single(em => em.emp_id == id);
          var EditEmp = entity.EmployeeCer.Where(o => o.emp_id == id).FirstOrDefault();

          if (EditEmp == null) 
            throw new Exception("不存在!");

          entity.DeleteObject(EditEmp);
          entity.SaveChanges(); 

       }
    }
}


0 0
原创粉丝点击