天天看点

ORM框架EF(ADO.NET实体数据模型)

我们在项目中,添加EF模型,就是ADO.NET实体数据模型。

ORM框架EF(ADO.NET实体数据模型)

添加之后,进入这个页面,选择第一个,第一个是根据数据库生成实体,一般设计好了数据,就可用第一个,第二个是没有设计好数据库,然后创建完后,直接可以设计数据库,然后再生成EF模型。

ORM框架EF(ADO.NET实体数据模型)

下个界面,点击新建连接,然后填写好,很简单,我就不赘述了,然后就选中下图中的是。名字可以改改你想设置的名字。

ORM框架EF(ADO.NET实体数据模型)
ORM框架EF(ADO.NET实体数据模型)

表就直接全选上,然后有存储过程的话,也选上。

ORM框架EF(ADO.NET实体数据模型)

然后点击完成,就等着他自动生成就行了。然后生成了很多的东西,那么下面我们就看看吧,这个东西怎么用阿,非常简单。

ORM框架EF(ADO.NET实体数据模型)

选中的这个类名,就是我们要用的了,我们在Program里面直接写代码就行了,增删改查 都可以。

先说增删改,大家声明上下文,就是上面我选中的类名。

//做一个添加操作
            //1.声明一个EF 上下文
            newssysemEntities newssysemEntities = new newssysemEntities();
            //2.声明一个User 实体
            category category = new category();
            category.id = 2018;
            category.name = "真香";
增
            //3.告诉EF咱们对上面的实体做一个插入操作
            newssysemEntities.categories.Add(category);

改
            //3.告诉EF咱们对上面的实体做一个更新操作
            newssysemEntities.Entry<category>(category).State = System.Data.Entity.EntityState.Modified;
            //3.对某个 列 属性做更新
            //newssysemEntities.Entry<category>(category).Property<string>(u => u.name).IsModified = true;
删
             newssysemEntities.Entry<category>(category).State = System.Data.Entity.EntityState.Deleted ;

            //4.告诉上下文把实体的变化保存到数据库里面去
            newssysemEntities.SaveChanges();
            Console.ReadKey();
           

查询的话,比较复杂,我放到后面单独说一下,因为查询用到linq,这个没有接触过的小伙伴可以去查一下。我觉得写的不错的Linq博客

//做一个添加操作
            //1.声明一个EF 上下文
            newssysemEntities newssysemEntities = new newssysemEntities();
            //2.声明一个User 实体
            category category = new category();

            //3.循环打印监视的数据
            //1查询所有数据打印出来
            foreach (var user in newssysemEntities.categories)
            {
                Console.WriteLine(user.id + " " + user.name);
            }
            //2查询 id大于2的数据打印出来
            var temp = from u in newssysemEntities.categories
                       where u.id > 2
                       select u;
            foreach (var categories in temp)
            {
                Console.WriteLine(categories.id + " " + categories.name);
            }
            //4.告诉上下文把实体的变化保存到数据库里面去
            newssysemEntities.SaveChanges();
            Console.ReadKey();
           

  总的来说,我们在用EF模型的时候,省去了好多的麻烦,省得我们去写三层了,而且也不用担心写错,让程序去生成,就减少了我们人工敲代码,产生的错误,提高了效率。