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(Entity Framework)进行DB First开发的方法。首先,通过创建控制台程序并添加ADO.NET实体数据模型,从数据库生成实体类。接着,详细解释了EDMX文件、导航属性、Context文件和DbSet的概念。文章强调了在进行CRUD操作时,删除对象必须包含主键以避免错误。最后,总结了DB First的优势,适合于已有完整数据库的情况,提供简便的数据库模型同步,并且可以通过LINQ进行数据库操作。
730

被折叠的 条评论
为什么被折叠?



