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

一、ORM 是什么

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

其中O代表的是c#语言中的实体对象,object

M代表的是数据库的表

R代表的是关系(表实体和表的相互转化)

二、Entity Framework是什么

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

三、Entity Framework的真删改查

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

6c414bfa3eeeaa86954ae4a84eb3b617.png

第一步,新建一个控制台应用程序,右键添加新建项,添加一个ADO实体数据模型

eea541b2559afd20892f6084cbc3ad78.png

第二步,选择Database First模式,数据库优先

fc721bece1c0957f01989b0d438c2d2c.png

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

c64d041a03aedab92e106aa5856469eb.png

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

c8bfe0a34d3a998609b04b5e87b4ce2a.png

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

860d82f0133d347a9cb672c6b83ed02e.png

第六步,选择要操作的表

c7528509a6f0a779f504c20135a6266b.png

第七步,在,相应的文件里,我们可以看到相对于数据库的上下文,和表实体

581c995915797fac0305370f7eb4ccf1.png

第八步,实体化一个新的数据库上下文,(数据库上下文的意思就是,负责将对表对象的操作弄到数据库上),并添加到数据库中

在这里我们可以看到我们数据库上下文的名称

b6cb57e6076c12fbac53adf106459987.png

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(user).State = System.Data.Entity.EntityState.Modified;//修改实体的状态为修改

ef.SaveChanges();//保存到数据库

Console.WriteLine("修改成功");

}

else

{

Console.WriteLine("查询不到对象,无法修改");

}

}

复制代码

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

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值