EF
文章平均质量分 87
EF框架的基础和实例
Dust_SongYunfei
自己“悟”到的才是属于自己的!
展开
-
EF中Fluent API更多配置
基本EF配置只要配置实体类和表、字段的对应关系、表间关联关系即可。如果利用EF的高级配置,可以达到更多效果:如果数据错误(比如字段不能为空、字符串超长等),会在EF层就会报错,而不会被提交给数据库服务器再报错;如果使用自动生成数据库,也能帮助EF生成更完美的数据库表。基本步骤在StudentConfig,实体对象的配置类中去设置指定的字符的其他配置首先调用Property()方法获取目标字段Property()方法中使用的是Lambda表达式获取到字段之后调用一系列EF函数设置字段的配置字段原创 2020-06-02 14:42:41 · 489 阅读 · 0 评论 -
EF对象状态
EF对象状态为什么查询出来的对象Remove()、再SaveChanges()就会把数据删除。而自己new一个Person()对象,然后Remove()不行?为什么查询出来的对象修改属性值后、再SaveChanges()就会把数据库中的数据修改。因为EF会跟踪对象状态的改变。EF中中对象有五个状态:Detached(游离态,脱离态)、Unchanged(未改变)、Added(新增)、Deleted(删除)、Modified(被修改)。...原创 2020-06-02 14:41:50 · 579 阅读 · 0 评论 -
EF的多元化
EF支持多种查询语法:SQL查询、LinQ查询、Lambda表达式EF会自动把Where()、OrderBy()、Select()等这些编译成“表达式树(Expression Tree)”,然后会把表达式树翻译成SQL语句去执行。(编译原理,AST)因此不是“把数据都取到内存中,然后使用集合的方法进行数据过滤”,因此性能不会低。但是如果这个操作不能被翻译成SQL语句,则或者报错,或者被放到内存中操作,性能就会非常低。正执行的SQL语句DbContext有一个Database属性,其中的Log属性,是原创 2020-06-02 14:41:18 · 201 阅读 · 0 评论 -
EF模型的配置
EF中的模型类的配置有DataAnnotations、FluentAPI 两种。上面这种在模型类上[Table(“Persons”)]、[Column(“Password”)]这种方式就叫DataAnnotations这种方式比较方便,但是耦合度太高,一般的类最好是POCO(Plain Old C# Object,没有继承什么特殊的父类,没有标注什么特殊的Attribute,没有定义什么特殊的方法,就是一堆普通的属性);不符合大项目开发的要求。微软推荐使用FluentAPI 的使用方式,因此后面主要用原创 2020-06-02 14:40:40 · 575 阅读 · 0 评论 -
EF使用CodeFirst创建
Code FirstCode First的微软的推荐用法是程序员只写模型类,数据库由EF 帮我们生成,当修改模型类之后,EF 使用“DB Migration”自动帮我们更改数据库。但是这种做法太激进,不适合很多大项目的开发流程和优化,只适合于项目的初始开发阶段。Java的Hibernate 中也有类似的DDL To SQL 技术,但是也是用的较少。“DB Migration”也不利于理解EF,因此在初学阶段,我们将会禁用“DB Migration”,采用更实际的“手动建数据库和模型类”的方式。原创 2020-06-02 14:39:52 · 393 阅读 · 0 评论 -
EF框架的搭建(DataBase First)
使用EF进行数据库开发的时候有两个东西建:建数据库(T_Persons),建模型类(Person)。EF的三种创建方法:1. DataBase First(数据库优先):先创建数据库表,然后自动生成EDM文件,EDM文件生成模型类。简单展示一下DataBase First 的使用。2. Model First(模型优先):先创建Edm文件,Edm文件自动生成模型类和数据库;3. Code First(代码优先):程序员自己写模型类,然后自动生成数据库。没有Edm。原创 2020-05-28 09:09:41 · 2221 阅读 · 19 评论 -
初识Entity Framework框架
对象关系映射(Object Relational Mapping,简称ORM)是通过使用描述对象和数据库之间映射的元数据,将面向对象语言程序中的对象自动持久化到关系数据库中。本质上就是将数据从一种形式转换到另外一种形式。 这也同时暗示着额外的执行开销;然而,如果ORM作为一种中间件实现,则会有很多机会做优化,而这些在手写的持久层并不存在。 更重要的是用于控制转换的元数据需要提供和管理;但是同样,这些花费要比维护手写的方案要少;而且就算是遵守ODMG规范的对象数据库依然需要类级别的元数据。原创 2020-05-28 09:01:00 · 2017 阅读 · 17 评论