其他分享
首页 > 其他分享> > EF基础篇-DB First

EF基础篇-DB First

作者:互联网

EDM entity data model 实体数据模型

Conceptual models 概念模型

Mappings 连接

Storage models 存储模型

Orm object relational mapping 对象关系映射

EF entity framework 是基于ADO.Net的ORM框架,将数据库中的表映射为实体类,建立联系,通过上下文进行数据操作

DB first

1 新建一个控制台程序

2 右键点击添加,新建项,如图,选择ADO.NET实体数据模型
在这里插入图片描述

3 模型配置

选择来自数据库的EF设计器

在这里插入图片描述

数据库连接配置和测试

在这里插入图片描述

选择所需的表、视图,点击完成

在这里插入图片描述

文件分析

如图edmx文件是实体属性设置界面,其中的导航属性是外键

在这里插入图片描述

属性操作 移除 新增 从数据库个性模型

在这里插入图片描述

Context文件 存在于Context.tt下

在这里插入图片描述

构造函数中的name对应于App.Config中数据库连接

DbSet 实体对象的集合,可用于增删改查

tt文件下存放实体类

在这里插入图片描述
CRUD实际操作

	//CRUD
	using (var ASEntity = new AccountSystemEntities())
	{
		//新增数据
		User u = new User();
		u.Email = "abc@163.com";
		u.UserID = ASEntity.User.Select(p=>p.UserID).ToList().Max() ==0?1:ASEntity.User.Select(p=>p.UserID).ToList().Max()";
		u.SerialNumber = "00000";
		u.UserName = "Test";
		u.Password = "123";
		u.RoleID = 1;
		ASEntity.User.Add(u);
		ASEntity.SaveChanges();
		
		//查询和修改
		var uu = ASEntity.User.Where(p=>p.UserName =="Test").FirstOrDefault();
		uu.Password = "1234";
		ASEntity.SaveChanges();
		
		//删除方式一 先查再删除
		ASEntity.User.Remove(uu);
		ASEntity.SaveChanges();
		
		//删除方式二 先定义再标记状态删除
		User ud = new User() { UserID=36};	
		ASEntity.Entry<User>(ud).State = System.Data.Entity.EntityState.Deleted;
		ASEntity.SaveChanges();	
	}

注意在删除时用EntityState 删除对象必须包含主键,不然会报以下错误

在这里插入图片描述

通过以上实例:

1 DB First 适用于数据库已存在,主键外键等比较完整的情况

2 DB First操作简便,数据库变更可及时更新模型

3 DB First 无需面对数据库,用LINQ即可完成对数据的操作

标签:数据库,EF,DB,ASEntity,User,SaveChanges,First
来源: https://blog.csdn.net/arvinzd/article/details/113700150