EntityFramework6.X 之 Fulent
Fulent
Fulent是配置领域模型类的另一个方法,它比DataAnnotations提供更多的配置,提供以下三种方法映射
Mappings |
To Database |
Model-Wide Mapping |
设置默认架构,设置经典约束 |
Entity Mapping |
映射单个或多个表格或架构,映射复杂类型,继承策略 |
Property Mapping |
属性、属性名、列类型、非空或非空列、列宽、列序列;并发列;外键列;配置关系 |
通常Fulent是在dbContext类或派生类中重写OnModelCreating方法定义,如下假设已经定义了Student领域类和Standard领域类
EntityTypeConfiguration Class
该类是一个非常重要的fluent API函数,提供了重要的方法去配置实体类和属性,通过Entity<TEntity>()方法调用
Method Name |
Description |
HasKey<TKey> |
配置实体的主键约束 |
HasMany<TTargetEntity> |
从这个实体开始配置一个多对多的关系 |
HasOptional<TTargetEntity> |
从这个实体配置一个可选关系,没有被关系指定的一方将可以保存到数据库中,外键可以为空 |
HasRequired<TTargetEntity> |
从这个实体配置一个必须关系,只有在确定关系的情况下实体类型实例才能被保存到数据库,否则外键列将会空 |
Ignore<TProperty> |
从领域模型中排除一个属性,该属性将不映射到数据库中 |
Map |
允许高级配置该模型的数据库模型 |
Property<T> |
配置一个已经定义的类型的结构属性 |
ToTable |
将领域类映射到数据库中的表名 |
1) 将类型指定为复杂类型
按约定,没有指定主键的类型将被视为复杂类型
Eg: modelBuilder.ComplexType<Details>();
2) 指定不将CLR实体类型映射到数据库中的表
简单说就是不将实体类型映射到数据库表中
Eg: modelBuilder.Ignore<OnlineCourse>();
Entity Mappings
可设置默认的架构
也可将实体配置到制定表
将一个实体类配置到多个表中
Property Mappings
Property用于为每个属于实体或复杂类型的属性配置特性。Property方法用于获取给定属性的配置对象。配置字符串属性是否支持Unicode内容,默认情况下,字符串为Unicode(SQLServer中的nvarchar),可以使用IsUnicode方法指定字符串应为varchar类型
Eg:modelBuilder.Entity<Department>().Property(t=>t.Name).IsUnicode(false);
先将领域类定义好
1) 配置主键约束和组合主键
2) 配置列名、类型和顺序,不仅仅可以通过方法,也可以通过HasColumnAnnotation配置
3) 配置空和非空列
4) 配置列宽
5) 配置并发列
转载于:https://www.cnblogs.com/Terrece/p/6892591.html
EntityFramework6.X 之 Fulent相关推荐
- 初识EntityFramework6【转】
http://www.cnblogs.com/wujingtao/p/5401132.html 什么是EF? EF是一种ORM(Object-relational mapping)框架,它能把我们在编 ...
- [转]在EntityFramework6中执行SQL语句
本文转自:http://www.cnblogs.com/wujingtao/p/5412329.html 在上一节中我介绍了如何使用EF6对数据库实现CRDU以及事务,我们没有写一句SQL就完成了所有 ...
- ef6 mysql code first_使用EntityFramework6连接MySql数据库(code first方式)
demo托管地址:http://git.oschina.net/uustudy/ASP.NET-CodeFirst-MySQL-Demo.git 首先和DB First那篇文章一样,准备工具都要一样的 ...
- 使用EntityFramework6连接MySql数据库(db first方式)
准备工具: VS2013.MySQL For VisualStudio 1.1.4.Connector/Net 6.8.3(百度网盘里) 程序包管理器执行命令: Install-Package Ent ...
- 使用简介EntityFramework6.0
序言 在这一篇中,我们将演示EnitityFramework基本的建模[建模也是EntityFramework最核心的特性]范例,例如实体的分离和继承等.我们开始了演示如何创建一个简单的概念模型的例子 ...
- EntityFramework6.X 之 Operation
上几个章节都是介绍EF6中Modeling内容,包括注解和Fluent,下面介绍EF6中的常用操作 Operation EF通过ObjectContext类定义从实体对象到数据库的映射,与ADO.NE ...
- FULENT软件测试工程师头像,关于ANSYS总部测试案例3之FLUENT软件中湍流管道压降的测试报告20141230.pdf...
关于ANSYS总部测试案例3之FLUENT软件中湍流管道压降的测试报告20141230.pdf 关于FLUENT 软件中湍流管道压降的测试报告 (介质为空气) 4 1.测试模型 (管道长2m,半径0. ...
- 在EntityFramework6中管理DbContext的正确方式——3环境上下文DbContext vs 显式DbContext vs 注入DbContext(外文翻译)...
(译者注:使用EF开发应用程序的一个难点就在于对其DbContext的生命周期管理,你的管理策略是否能很好的支持上层服务 使用独立事务,使用嵌套事务,并行执行,异步执行等需求? Mehdi El Gu ...
- Entity Freamwork 6连接PostgreSql数据库
原文 Entity Freamwork 6连接PostgreSql数据库 开发环境 VS 2015 Update 1 Postgre Sql 9.4 使用过程 1.使用Nuget在项目中添加对E ...
最新文章
- php v5.,PHP V5.3 中的新特性,第 5 部分- 从 PHP V5.2 升级到 PHP V5.3
- cxf生成客户端代码
- 中国文学发展史思维导图
- 关于c++中map插入元素的问题
- java newfile() bug_java初学者小白?遇到BUG就慌了?有关java异常的十大问题详解!...
- malloc calloc realloc
- 《C语言及程序设计》实践参考——输出小星星(全解)
- spring in action 4 第6章 视图分发
- Linux常用命令总结之(七)mkdir
- 定位到文件目录并选定文件
- PDF区域文本提取工具
- TripAdvisor猫途鹰翻译志愿者线上任务评测
- godaddy无法修改域名服务器,GoDaddy域名修改DNS设置方法
- 动画 | 什么是红黑树?(与2-3-4树等价)
- java isbn_java – 将ISBN10转换为ISBN13
- HDU1922 POJ3004 Subway planning “神题”留名
- 3秒钟解决windows字符间距变大,输入字母间距变大问题
- 正则表达式校验正数/负数
- YOLOV5训练代码train.py注释与解析
- gmt时间转化函数c语言,时区缩写 UTC, CST, GMT, CEST 以及转换(示例代码)
热门文章
- IntelliJ IDEA中无法加载jar包导致出现“cannot resolve symbol...”问题的解决
- 服务提供者和服务消费者
- lsof -i:port 的作用
- JAVA 获取格林威治时间(GMT)
- 自定义权限 android,如何在Android中使用自定义权限?
- 消防信号二总线有没电压_春晓161#地块人防工程消防电源监控系统的设计与应用...
- c# 蓝牙虚拟串口_蓝牙模块——基础知识介绍
- src与href属性的区别
- lynda ux_如何进入UX领域
- 没想到你是这样的npm install