首先EF对关系数据库的映射遵循如下规则:

Fluent API 配置 override 数据注释 override 约定

System.Data.Entity.ModelConfiguration.Conventions(EntityFramework.dll)

==========约定==========
1 key(主键约定):EF默认会自动查找属性名为“Id”或【类名+“Id”】的组合,作为该类的主键

2 foreignKey(关系约定): 0、1...N

任何数据类型与主体主键属性相同、遵循以下一种格式的属性都表示关系的外键:
A class:
Parent{
ParentId
ICollection Childrens
}
B class:
Children{}
在Children类中,根据如下约定,这些属性名是外键。
= ChildrensParentId

= ParentParentId

= ParentId

其它:
通过Fluent API禁用或移除约定
可以移除在 System.Data.Entity.ModelConfiguration.Conventions 命名空间中定义的任何约定
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
// Configure Code First to ignore PluralizingTableName convention
// If you keep this convention, the generated tables
// will have pluralized names.
modelBuilder.Conventions.Remove();
}

EF学习笔记-CODE FIRST-约定的更多相关文章

  1. EF学习笔记(十二):EF高级应用场景

    学习总目录:ASP.NET MVC5 及 EF6 学习笔记 - (目录整理) 上篇链接:EF学习笔记(十一):实施继承 本篇原文链接:Advanced Entity Framework Scenari ...

  2. EF学习笔记(九):异步处理和存储过程

    总目录:ASP.NET MVC5 及 EF6 学习笔记 - (目录整理) 上一篇:EF学习笔记(八):更新关联数据 本篇原文:Async and Stored Procedures 为何要采用异步? ...

  3. EF学习笔记(十一):实施继承

    学习总目录:ASP.NET MVC5 及 EF6 学习笔记 - (目录整理) 上篇链接:EF学习笔记(十) 处理并发 本篇原文链接:Implementing Inheritance 面向对象的世界里, ...

  4. EF学习笔记(十) 处理并发

    总目录:ASP.NET MVC5 及 EF6 学习笔记 - (目录整理) 上一篇:EF学习笔记(九):异步处理和存储过程 本篇原文链接:Handling Concurrency Concurrency ...

  5. EF学习笔记(八):更新关联数据

    学习笔记主目录链接:ASP.NET MVC5 及 EF6 学习笔记 - (目录整理) 上一篇链接:EF学习笔记(七):读取关联数据 本篇原文链接:Updating Related Data 本篇主要考 ...

  6. EF学习笔记(七):读取关联数据

    总目录:ASP.NET MVC5 及 EF6 学习笔记 - (目录整理) 本篇参考原文链接:Reading Related Data 本章主要讲述加载显示关联数据: 数据加载分为以下三种 Lazy l ...

  7. EF CodeFirst学习笔记001--主键约定

    Code First 的核心是约定,这些默认的规则使我们可以用我们自己的类来创建模型.EF框架要求一个类必须有一个键属性.规则约定如果一个属性名为Id或者是类名+Id的形式(如PatientId),这 ...

  8. 【EF学习笔记10】----------主从表级联操作

    主从表 级联新增 Console.WriteLine("=========主从表 级联新增=========="); using (var db = new Entities()) ...

  9. EF 学习笔记

    1.EFcodeFirst如何使用存储过程!public string GetCoupon(int type) { using (var db=new ProbabilityContext()) { ...

随机推荐

  1. 进入一个docker容器

    Starting from Docker 1.3 you can use Docker exec to enter a Docker container : docker exec -it CONTA ...

  2. How to Pronounce PROBABLY

    How to Pronounce PROBABLY Share Tweet Share Though this is a content word, it’s frequently reduced. ...

  3. mysql 变量名称不能与表字段一致

    my sql的变量名称不能与表字段名称相同不然会有各种异常问题 啃爹

  4. Java8 Stream语法详解 2

    1. Stream初体验 我们先来看看Java里面是怎么定义Stream的: A sequence of elements supporting sequential and parallel agg ...

  5. siebel切换数据源

    需求: 将SIT应用服务器10.10.1.151中配置的数据源改为测试集群数据库服务器10.10.1.53.10.10.1.54 方法: 1.将正式环境数据库17 18 的RACDB还原到测试集群服务 ...

  6. 第八章 高级搜索树 (a2)伸展树:双层伸展

  7. Python3 ascii() 函数

    Python3 ascii() 函数  Python3 内置函数 描述 ascii() 函数类似 repr() 函数, 返回一个表示对象的字符串, 但是对于字符串中的非 ASCII 字符则返回通过 r ...

  8. IBM关闭触摸板的方法

    开始按Enter进入BIOS > Configure > Keyboard/Mouse > TouchPad,设置为DisabledF10保存退出

  9. MVC中构建Linq条件、排序、Selector字段过滤

    代码: System.Linq.Expressions.Expression<Func<Domain.S_ROLE, bool>> expressWhere1 = (c =&g ...

  10. oracle查找特定表的引用

    select * from user_source t where upper(t.TEXT) like upper('%table1%') 第二种方法类似于eclipse中的file search ...