EF基础的增删改查VS2017(Database First)

1,691 阅读3分钟

一、ORM 是什么

在了解Entity Framework是什么前,我们先的知道ORM是什么,ORM是一种对象关系映射思想,我们可以这样理解:

  • 其中O代表的是c#语言中的实体对象,object
  • M代表的是数据库的表
  • R代表的是关系(表实体和表的相互转化)

二、Entity Framework是什么

简称EF是微软对ORM(对象关系映射)思想的一种框架,底层仍然是ADO.NET,即对数据库的访问。

三、Entity Framework的真删改查

开始操作前,先建立一个数据库

  • 第一步,新建一个控制台应用程序,右键添加新建项,添加一个ADO实体数据模型
  • 第二步,选择Database First模式,数据库优先

  • 第三步,新建连接,如果以前没有使用过的话,新建一个数据库连接

  • 第四步,一一对应添就好了

  • 第五步,点是,并且勾选,如果不点是的话,你对数据库的一些访问权限会被屏蔽,还得手动去设置,勾选也一样(这里可能描述不怎么全面,不点是的话,我们会发现访问数据的连接字符串里密码会没有,没有了怎么访问数据库呢?是否勾选,可以解决我们在不同项目中连接字符串的配置问题)

  • 第六步,选择要操作的表

  • 第七步,在,相应的文件里,我们可以看到相对于数据库的上下文,和表实体
  • 第八步,实体化一个新的数据库上下文,(数据库上下文的意思就是,负责将对表对象的操作弄到数据库上),并添加到数据库中 在这里我们可以看到我们数据库上下文的名称

    namespace EFDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            Add();
            Console.ReadKey();
        }
        private static void Add()
        {
            EFDemoEntities ef = new EFDemoEntities();//实例化上下文
            EFTableSet user = new EFTableSet()//实例化一个用户类
            {
                Id=1,
                Name="张三",
                Age="19"
            };
            ef.EFTableSet.Add(user);//添加到数据对象里
            ef.SaveChanges();//保存到数据库
        }
    }
}
  • 第九步,查询(lambda表达式查询,和linq查询),俩种方式性能都一样啦,哪个用的爽用哪个喽
       private static void Select()
        {
            EFDemoEntities ef = new EFDemoEntities();//实例化上下文
            var list = ef.EFTableSet.Where(m => true).ToList();//lambda表达式查询
            var list2 = from item in ef.EFTableSet select item;//link表达式查询
            foreach (var item in list2)
            {
                Console.WriteLine(" "+item.Id+" "+item.Name+" "+item.Age);
            }
        }
  • 第十步,删除,修改,删除和修改都是的先查询到这一行信息,存在,才能去删除,否则的话,没有,怎么删呢? 修改删除都一样,都是添加到上下文,将实体的对象的状态修改一下就好了
 private static void Update(int id)
        {
            EFDemoEntities ef = new EFDemoEntities();//实例化上下文
            EFTableSet user = ef.EFTableSet.Where(m => m.Id == id).FirstOrDefault();//FirstOrDefault查询第一个
            if (user != null)
            {
                user.Name = "李四";
                user.Age = "20";//修改的内容
                ef.EFTableSet.Attach(user);//附加到上下文
                ef.Entry<EFTableSet>(user).State = System.Data.Entity.EntityState.Modified;//修改实体的状态为修改
                ef.SaveChanges();//保存到数据库
                Console.WriteLine("修改成功");
            }
            else
            {
                Console.WriteLine("查询不到对象,无法修改");
            }
        }

结束语,“简洁是智慧的灵魂”

EF能够以相对传统开发编写更少的代码来创建和维护应用程序

呼~可算写完了,我们使用EF可以发现,他非常方便,不需要我们去写SQL语句了,而且他是强类型的,当然对于一些复杂的查询我们仍然可在EF中使用!