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

1、ORM 是什么

在了解Entity Framework是什么前,咱们先的知道ORM是什么,ORM是一种对象关系映射思想,咱们能够这样理解:数据库

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

2、Entity Framework是什么

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

3、Entity Framework的真删改查

开始操做前,先创建一个数据库bash

  • 第一步,新建一个控制台应用程序,右键添加新建项,添加一个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中使用!性能

相关文章
相关标签/搜索