一、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(user).State = System.Data.Entity.EntityState.Modified;//修改实体的状态为修改
ef.SaveChanges();//保存到数据库
Console.WriteLine("修改成功");
}
else
{
Console.WriteLine("查询不到对象,无法修改");
}
}
复制代码
结束语,“简洁是智慧的灵魂”
EF能够以相对传统开发编写更少的代码来创建和维护应用程序
呼~可算写完了,我们使用EF可以发现,他非常方便,不需要我们去写SQL语句了,而且他是强类型的,当然对于一些复杂的查询我们仍然可在EF中使用!