1、 ORM :Object Relation Mapping ,通俗说:用操作对象的方式来操作数据库。

2、 插入数据不再是执行Insert,而是类似于 Person p=new Person() ; p.Age=3;p.Name="wang" ;db.save(p);这样的做法;

3、ORM工具有很多Dapper、PetPoco、NHibermate,首推Entity Framework

4、EF底层还是多ADO.Net的封装.

5、使用EF进行数据库开发的时候有两个东西建立:建数据库,建模型类。根据这两种创建的先后顺序有EF的三种创建方法:

(1) Database First(数据库优先):先创建数据库表,然后自动生成EDM文件,EDM文件生成模型类

(2)Model First (模型优先):先创建Edm文件,Edm文件自动生成模型类和数据库;

(3)Code First(代码优先):自己写模型类,然后生成数据库,没有EDM。

6、EF安装

(1)基础阶段用控制台项目,使用Nuget安装EntityFramework 会自动再APP'config  中增加两个EntityFramework相关的配置;

(2)在web.cong中配置链接字符串:

  <connectionStrings><add name="connstr" connectionString=" Data Source=.; Initial Catalog=Test2; User Id=sa; Password=123;  "  providerName="System.Data.SqlClient"  /></connectionStrings>

7、 EF简单DataAnnotations实体配置

(1)数据库创建表:T_Persons,有Id(主键,自动增长) ,Name,CreateDateTime;

(2)创建Person类

    [Table("T_Persons")] //因为和表名不一样,所以要使用Table标注;public class Person{public long Id { get; set; }public string  Name { get; set; }public DateTime CreateDateTime { get; set; }}

因为EF约定的主键是Id,所以不用再特殊指定Id为主键,如果非要指定就用[Key] .因为字段名和属性名一样,所以不用再特殊指定关系,如果需要[Column("Name")].

必填字段标注[Required]、字段长度[MaxLength(5)] 、可空字段 int?  、如果字段再数据库中有默认值,则要再属性上标注[DatabaeGenerated]  注意实体类要写成public ,否则后面会有麻烦;

(3)创建 DbContext 类(模型类、实体类)

   public class TestDbContext:DbContext{public TestDbContext():base("name=connstr")//name=connstr 表示使用连接字符串中名字为connstr的数据库
        {}public DbSet<Person> Persons { get; set; }}

(4)测试:

        static void Main(string[] args){using (TestDbContext ctx = new TestDbContext()){Person p1 = new Person(){   CreateDateTime = DateTime.Now,Name = "wang"};ctx.Persons.Add(p1);ctx.SaveChanges();}}

注意: MyDbConnect 对象是否需要using有争议,不using也没事,每次用的时候new MyDbConnect就行,不用共享同一实例,共享反而会有问题。saveChanges()才会更新到数据库中。EF开发团队都说要using,很多人不用,只是想利用LazyLoad而已,但是那样做是违反分层的原则的。习惯用using

8、 EF模型的两种配置方式:

EF中的模型类有两种配置方式:DataAnnotations、FluentAPI两种。上面这种在模型类上[Table"T_Person")]、[Column("Name")]这种方式就叫 DataAnnotations。这种方式方便,但是耦合度太高,一般的类最好是POCO(就是一个普通的类),不符合大项目开发的要求。微软推荐使用FluentAPI,因此主要用FluentAPI

转载于:https://www.cnblogs.com/fuyouchen/p/9385463.html

Entity Framework(二)相关推荐

  1. MVC用非Entity Framework将数据显示于视图(二)

    这篇<MVC用非Entity Framework将数据显示于视图> http://www.cnblogs.com/insus/p/3364235.html 也算是MVC视图显示数据库的数据 ...

  2. Entity Framework 4.1 DbContext使用记之二——如何玩转本地实体? DbSet.Local属性的使用与实现...

    说好为大家带来一系列的文章,现在就写第二篇.开始之前,再啰嗦两句,EF4.1 RTW版本已经发布:http://www.microsoft.com/downloads/en/details.aspx? ...

  3. Entity Framework技巧系列之二 - Tip 6 - 8

    提示6. 如何及何时使用贪婪加载 什么时候你需要使用贪婪加载? 通常在你的程序中你知道对查询到的实体将要进行怎样的操作. 例如,如果你查询一个订单以便为一个客户重新打印,你知道没有组成订单的项目即产品 ...

  4. C#综合揭秘——Entity Framework 并发处理详解

    引言 在软件开发过程中,并发控制是确保及时纠正由并发操作导致的错误的一种机制.从 ADO.NET 到 LINQ to SQL 再到如今的 ADO.NET Entity Framework,.NET 都 ...

  5. Entity Framework的启动速度优化

    最近开发的服务放到IIS上寄宿之后,遇到一些现象,比如刚部署之后,第一次启动很慢:程序放置一会儿,再次请求也会比较慢.比如第一个问题,可以解释为初次请求某一个服务的时候,需要把程序集加载到内存中可能比 ...

  6. 关于Entity Framework自动关联查询与自动关联更新导航属性对应的实体注意事项说明...

    一.首先了解下Entity Framework 自动关联查询: Entity Framework 自动关联查询,有三种方法:Lazy Loading(延迟加载),Eager Loading(预先加载) ...

  7. 使用EF框架实现MVC的增删改查功能!!!Entity Framework

    一.什么是EF? ADO.NETEntity Framework 是微软以 ADO.NET 为基础所发展出来的对象关系对应 (O/R Mapping) 解决方案.ADO.NET Entity Fram ...

  8. 【配置映射】—Entity Framework实例详解

    前两篇博文中的配置属性和配置关系都是配置映射,配置属性是属性的映射,配置关系式关系的映射,本篇从讲讲实体的映射. 首先,配置实体映射到表,使用ToTable方法,它接受两个参数,第一个参数是表的名称, ...

  9. 【查询】—Entity Framework实例详解

    Entity Framework 查询使用集成查询,简称LINQ.LINQ是一个查询框架,并不限于Entity Framework使用,同样不限于数据库.LINQ Provider 负责将LINQ查询 ...

最新文章

  1. mongoDB 介绍(特点、优点、原理)
  2. 云serverlinux又一次挂载指定文件夹(非扩充)
  3. 麦克风阵列音频检查方法和标准
  4. 怎么用java ee编程_Java EE应用程序入门 - 编程入门网
  5. 东北师范大学计算机科学与技术录取分数线,东北师范大学计算机科学与技术专业2015年在河南理科高考录取最低分数线...
  6. virsh命令 查看虚拟机镜像_kvm虚拟机操作相关命令及虚拟机和镜像密码修改
  7. (转)基于MVC4+EasyUI的Web开发框架形成之旅--附件上传组件uploadify的使用
  8. 团队协作项目——SVN的使用
  9. serialVersionUID干嘛用的?
  10. PL/SQL学习笔记(二)
  11. 用c#创建支持多语言的WinForm应用程序 .
  12. webstorm设置中文界面
  13. 三菱5uplc伺服电机指令_2020山东三菱PLCFX1S30MT回收回收价格公道
  14. listview优化几种写法(原创)
  15. win8删除计算机管理员权限,win8.1系统如何删除administrator账户
  16. 促销方式脑图(转载图灵学院)
  17. N32926 24小时连续测试720p, h.264 IPCAM功能,为什么基本不发热呢?
  18. Android集成高德地图
  19. 为华生物COOH-PEG-MAL羧基-聚乙二醇-马来酰亚胺的简介及应用说明
  20. 《富爸爸穷爸爸》中提及的经典书籍

热门文章

  1. 中国电子学会scratch等级考试二级
  2. 【原型设计】第五节:Axure RP9 交面交互的使用说明 02 显示隐藏元素
  3. 我的世界1.6.2 java_我的世界Java版1.16.2
  4. VSCode 代码风格统一设置eslint + stylelint
  5. Python笔记-房贷计算(本息和本金,每月还利息和每月还本金)及作图对比
  6. Java笔记-对称加密AES的使用
  7. Qt工作笔记-对Qt工作线程的进一步理解
  8. JS判断视频Video的播放、暂停、结束完成及获取长度事件监听处理
  9. java web 分页技术_javaweb分页的后端实现
  10. 输入 vscode_【Python技术入门2】Python集成开发环境VSCode搭建