码迷,mamicode.com
首页 > 数据库 > 详细

EF基础篇-DB First

时间:2021-02-06 12:17:48      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:select   div   number   username   完整   右键   pass   rgba   inf   

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实际操作

技术图片
 1            //CRUD
 2             using (var ASEntity = new AccountSystemEntities())
 3             {
 4                 //新增数据
 5                 User u = new User();
 6                 u.Email = "abc@163.com";
 7                 u.UserID = ASEntity.User.Select(p => p.UserID).ToList().Max() == 0 ? 1 : ASEntity.User.Select(p => p.UserID).ToList().Max() + 1;
 8                 u.SerialNumber = "00000";
 9                 u.UserName = "Test";
10                 u.Password = "123";
11                 u.RoleID = 1;
12                 ASEntity.User.Add(u);
13                 ASEntity.SaveChanges();
14 
15                 //查询和修改
16                 var uu = ASEntity.User.Where(p => p.UserName == "Test").FirstOrDefault();
17                 uu.Password = "1234";
18                 ASEntity.SaveChanges();
19 
20                 //删除方式一 先查再删除
21                 ASEntity.User.Remove(uu);
22                 ASEntity.SaveChanges();
23 
24                 //删除方式二 先定义再标记状态删除
25                 User ud = new User() { UserID=36 };
26                 ASEntity.Entry<User>(ud).State= System.Data.Entity.EntityState.Deleted;
27                 ASEntity.SaveChanges();
28             }        
View Code

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

技术图片

通过以上实例:

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

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

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

 

EF基础篇-DB First

标签:select   div   number   username   完整   右键   pass   rgba   inf   

原文地址:https://www.cnblogs.com/arvinzd/p/14312837.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!