原文地址:http://www.entityframeworktutorial.net/code-first/configure-classes-in-code-first.aspx

EF 6 Code-First系列文章目录:

在前面的章节中,我们学习了Code-First默认的约定。Code-First使用默认的约定,从你的领域类中生成概念模型。EF 6 Code-First利用了一种称为约定优先于配置的编程模式。但是,你可以通过配置你的领域模型,来重写这些默认约定以提供EF所需要的信息。有两种方式来配置你的领域类:

1.Data Annotation Attributes【数据注解特性】 

2.Fluent API

数据注解特性

数据注解是一种基于配置的简单特性,你可以应用于你的领域类以及领域类的属性上。数据注解特性,不仅适用于EF、还适用于ASP.NET Web Form以及ASP.NET MVC,数据注解特性包含在System.ComponentModel.DataAnnotations.命名空间下。

下面的例子,列举出了一些数据注解特性的例子:

需要注意的是:数据注解特性,并不支持EF中所有的配置选项。所以你可以使用Fluent API,Fluent API提供了EF中所有的配置选项。

Fluent API

另外的配置领域类的方式就是使用EF中的Fluent API。EF Fluent API是基于Fluent API设计模式的(a.k.a Fluent Interface),Fluent API就是通过方法链式调用的。

当EF从领域类构建模型时,就可以应用Fluent API配置。你可以通过重写DBContext类的OnModelCreating方法,以注入Fluent API 相关配置。例如:

你可以使用DbModelBuilder类的 modelBuilder对象来配置领域类、这个DbModelBuilder就称为Fluent API,因为你可以链式调用各种不同的方法。

后面的章节中,你将了解Fluent API更多详细的细节。

这篇文章就介绍结束了,大家有什么问题,欢迎与我讨论,一起进步,谢谢支持!

8.翻译系列: EF 6中配置领域类(EF 6 Code-First 系列)的更多相关文章

  1. 11.翻译系列:在EF 6中配置一对零或者一对一的关系【EF 6 Code-First系列】

    原文链接:https://www.entityframeworktutorial.net/code-first/configure-one-to-one-relationship-in-code-fi ...

  2. 12.翻译系列:EF 6 中配置一对多的关系【EF 6 Code-First系列】

    原文链接:https://www.entityframeworktutorial.net/code-first/configure-one-to-many-relationship-in-code-f ...

  3. 6.Configure Domain Classes(配置领域类)【EF Code-First 系列】

    在前面的部分中,我们学习了Code-First默认约定,Code-First使用默认的约定,根据你的领域类,然后生成概念模型. Code-First模式,发起了一种编程模式:约定大于配置.这也就是说, ...

  4. EF CodeFirst配置领域类

    当我们不想使用EF的默认约定时,可以手动配置领域类,但还是推荐少配置,Simple is best! 两种配置方式: 1.Data Annotation Attributes[数据注解特性]  数据注 ...

  5. 【转载】 [unreal4入门系列之七] UE4中的Actor类和Pawn类

    原文地址: http://www.52vr.com/article-558-1.html 现在我们开始进入UE4的代码开发工作.首先,UE4的类框架是非常庞大的,看起来有点让人措手不及.不过正因为UE ...

  6. CentOS7系列--5.3CentOS7中配置和管理Kubernetes

    CentOS7配置和管理Kubernetes Kubernetes(k8s)是自动化容器操作的开源平台,这些操作包括部署,调度和节点集群间扩展.如果你曾经用过Docker容器技术部署容器,那么可以将D ...

  7. CentOS7系列--5.2CentOS7中配置和管理Docker

    CentOS7配置和管理Docker Docker是操作系统级别的虚拟化工具,它能自动化布署在容器中的应用 1. 安装Docker 1.1. 安装Docker相关软件 [root@server1 ~] ...

  8. CentOS7系列--5.1CentOS7中配置和管理KVM

    CentOS7配置和管理KVM 安装与配置虚拟化软件KVM ( Kernel-based Virtual Machine ) + QEMU,它要求计算机的CPU支持Intel VT or AMD-V功 ...

  9. CentOS7系列--3.2CentOS7中配置iSCSI服务

    CentOS7配置iSCSI服务 在网络上的存贮服务为iSCSI Target,而连接到iSCSI Target服务的叫iSCSI Initiator 1. 直接配置iSCSI Target服务 1. ...

随机推荐

  1. A. 【UR #17】滑稽树上滑稽果

    题解: 首先很显然的是这是一条链(特殊数据说是链是故意让人迷茫的??) 然后 自己就开始yy 觉得每一次是加入一个使得当前值最小的数 然而这tm又是特殊数据?? 那就写一波发现是错的 考虑一下特殊数据 ...

  2. poj 3415

    对拍没错..莫名wa了 利用容斥求每个串的重复子串 其实就是找到每个元素能扩展到的最大元素 即(rr-i)*(i-lr)*(w[i]-kk) 就可以了 然后处理这个先离散化再搞 另外是x y要清空 # ...

  3. NodeMCU入门(1):刷入At固件,透传数据到TcpServer和Yeelink平台

    准备工作 1. NodeMCU  LUA ESP8266 CP2102  WIFI Internet Development Board,仔细看背面可以看出自带cp2102模块,可以通过普通的手机充电 ...

  4. Repository HDU2846

    极限过的 最原始的方法一层一层建树就好了 #include<bits/stdc++.h> using namespace std; ][]={}; ]={}; ]; ; int pos; ...

  5. ACM题目中的时间限制与内存限制 复杂度的估计

    运行时限为1s,这很常见,对于该时限,我们设计的算法复杂度不能超过百万级别,即不要超过一千万.假如你的算法时间复杂度为O(n^2),则n不应该大于3000 空间限制是32MB,即你程序中申请的内存不能 ...

  6. PyQt5安装及ModuleNotFoundError: No module named 'PyQt5'问题解决

    PyQt5安装及ModuleNotFoundError: No module named 'PyQt5'问题解决     安装pyQt5费了很多的周折,不过现在还是安装好了,现在重新梳理一下整个安装过 ...

  7. Wamp修改端口

    WAMP装好之后默认的端口是80,但是这个80端口呢,可以热门端口啊,迅雷,IIS都挺喜欢,在WIN7下本来还有1个进程也点80,让人伤脑筋啊,所以把它改掉,方法如下: 一.修改APACHE的监听端口 ...

  8. grpc ssl使用

    相关链接 http://www.jianshu.com/p/2873a8349ca0

  9. 项目冲刺Third

    Third Sprint PS:经今天讨论,我们小队决定撤掉用GUI设计界面,改用html和php制作,所以需要修改前面的博客及重新分配任务 1.各个成员今日完成的任务 蔡振翼:撰写博客 谢孟轩:借阅 ...

  10. bzoj4503: 两个串 bitset

    目录 题目链接 题解 代码 题目链接 bzoj4503: 两个串 题解 暴一发bitset f[i][j] 表示 S[1..i] 是否有个后缀能匹配 T[1..j] 那么假设 S[i+1] 能匹配 T ...