随笔分类 -  EF Code-First 学习路程

学无止境
摘要:1。CreateDatabaseIfNotExists: 2.DropCreateDatabaseIfModelChanges: 3.DropCreateDatabaseAlways: 4.Custom DB Initializer: 配置文件中初始化 关闭数据库初始化功能 初始化 种子 数据 阅读全文
posted @ 2017-03-29 23:08 蓝平凡 阅读(1850) 评论(0) 推荐(0)
摘要:之前我们配置的实体都都在OnModelCreating方法中,如果有很多实体的话,OnModelCreating方法管理很麻烦 我们可以用单独的类来管理配置,继承EntityTypeConfiguration<TEntity>类实现 阅读全文
posted @ 2017-03-29 23:06 蓝平凡 阅读(6466) 评论(0) 推荐(1)
摘要:级联删除是当删除主记录的时候会自动删除依赖的记录或者设置外键属性为null 级联删除:当删除Student的时候也删除StudentAddress 级联删除注意的: 1.需要保证DbContext中已经加载了该父对象的所有子对象 因此在查询父对象的时候应该使用Include("子对象属性名")查询, 阅读全文
posted @ 2017-03-29 22:58 蓝平凡 阅读(2744) 评论(1) 推荐(0)
摘要:namespace EFDemo { using System; using System.Data.Entity; using System.ComponentModel.DataAnnotations.Schema; using System.Linq; public partial class SchoolCon... 阅读全文
posted @ 2017-03-29 21:50 蓝平凡 阅读(563) 评论(0) 推荐(0)
摘要:默认配置会生成如下表结构 Fluent API配置 阅读全文
posted @ 2017-03-29 21:44 蓝平凡 阅读(469) 评论(0) 推荐(0)
摘要:上面的代码中,Student实体包含导航属性Standard,Standard实体包含集合导航属性Student,Code First的默认规则为1对多的关系 指定外键 Fluent API配置 如果外键不符合默认规则 可以如下配置 modelBuilder.Entity<Student>().Ha 阅读全文
posted @ 2017-03-29 21:01 蓝平凡 阅读(2068) 评论(0) 推荐(0)
摘要:1对1、1对0 的关系 例如:Entity1与零个或一个Entity2的实例有关系 在关系型数据库(如SQL Server)中,1对0或1的关系是一个表的主键将是另一个关系表的主键或外键 因此,创建Student表的时候设置StudentId为主键,StudentAddress表的StudentAd 阅读全文
posted @ 2017-03-29 20:39 蓝平凡 阅读(3552) 评论(0) 推荐(0)
摘要:Set default Schema Set Custom Convetions To Single or Multiple Tables and Schema To Complex type Inheritance Hierarchies To Column, Column Name, Colum 阅读全文
posted @ 2017-03-29 00:01 蓝平凡 阅读(2280) 评论(0) 推荐(0)
摘要:数据注解:配置选项的子集;Fluent API包含所有选项 System.ComponentModel.DataAnnotations Attributes: System.ComponentModel.DataAnnotations.Schema Attributes: AttributeDesc 阅读全文
posted @ 2017-03-28 22:55 蓝平凡 阅读(847) 评论(1) 推荐(1)
摘要:Code First中有三种不同的方法表示继承层次关系 1.Table per Hierarchy (TPH): 这种方法建议用一个表来表示整个类的继承层次关系,表中包含一个识别列来区分继承类,在EntityFramework中,这是默认的实现 类与数据库表的映射最简单的策略应该是:每个持久类对应一 阅读全文
posted @ 2017-03-28 00:53 蓝平凡 阅读(2470) 评论(0) 推荐(2)
摘要:Context类的基类构造函数有如下的参数 1.无参数 如果没有给基类构造函数添加参数,它会在local SQLEXPRESS server创建数据库,名为{Namespace}.{Context class name} 上面创建的数据库名称为:SchoolDataLayer.Context 2.参 阅读全文
posted @ 2017-03-26 23:23 蓝平凡 阅读(406) 评论(0) 推荐(0)
摘要:协定是一系列的默认规则用来自动配置领域中的概念模型 1:类型发现 Code-First对包含DBSet属性的类型创建表(包括这些类型的所有引用类型) 上图所示:即使上下文不包含Teacher的实体集,Code-First也为Teacher创建表 Code-First发现类型的协定: 1)上下文中的D 阅读全文
posted @ 2017-03-26 22:34 蓝平凡 阅读(745) 评论(0) 推荐(0)
摘要:什么是Code-First 基本工作流: 写好应用程序的领域类和上下文类→配置领域类的额外映射→运行程序→Code-First API创建新的数据库或与现有数据库对应→添加种子数据到数据库中测试 阅读全文
posted @ 2017-03-26 16:40 蓝平凡 阅读(357) 评论(0) 推荐(1)