【转】FluentAPI详细用法
- 设置主键
modelBuilder.Entity<x>().HasKey(t => t.Name); - 设置联合主键
modelBuilder.Entity<x>().HasKey(t =>new{t.Name,t.ID} ); - 取消数据库字段标识(取消自动增长)
modelBuilder.Entity<x>().Property(t=>t.Id).HasDatabaseGeneratedOption(DatabaseGeneratedOption.None); - 设置数据库字段标识(自动增长)
modelBuilder.Entity<Teacher>().Property(t =>t.Id).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity); - 设置字段最大长度
modelBuilder.Entity<ClassA>().Property(t => t.Name).HasMaxLength(100); - 设置字段为必需
modelBuilder.Entity<ClassA>().Property(t =>t.Id).IsRequired(); - 属性不映射到数据库
modelBuilder.Entity<ClassA>().Ignore(t => t.A); - 将属性指定数据库列名:
modelBuilder.Entity<ClassA>() .Property(t => t.A) .HasColumnName("A_a"); - 级联删除(数据库默认是不级联删除的)
modelBuilder.Entity<Course>().HasRequired(t => t.Department).WithMany(t => t.Courses).HasForeignKey(d => d.DepartmentID).WillCascadeOnDelete(); - 设置为Timestamp
modelBuilder.Entity<OfficeAssignment>() .Property(t => t.Timestamp) .IsRowVersion(); - 表1对0..1(Instructor实体可以包含零个或一个OfficeAssignment)
modelBuilder.Entity<OfficeAssignment>().HasRequired(t => t.Instructor).WithOptional(t => t.OfficeAssignment); - 表1对1
modelBuilder.Entity<Instructor>().HasRequired(t => t.OfficeAssignment).WithRequiredPrincipal(t => t.Instructor); - 表1对n(Department为主表)
modelBuilder.Entity<Staff>() .HasRequired(c => c.Department) .WithMany(t => t.Staffs) - 指定外键名(指定表Staff中的字段DepartmentID为外键)
modelBuilder.Entity<Staff>() .HasRequired(c => c.Department) .WithMany(t => t.Staffs) .Map(m => m.MapKey("DepartmentID")); - 表n对n
modelBuilder.Entity<Course>()
.HasMany(t => t.Instructors)
.WithMany(t => t.Courses) - 表n对n指定连接表名及列名
modelBuilder.Entity<Course>()
.HasMany(t => t.Instructors)
.WithMany(t => t.Courses)
.Map(m =>
{
m.ToTable("CourseInstructor");
m.MapLeftKey("CourseID");
m.MapRightKey("InstructorID");
});
转载于:https://www.cnblogs.com/yunspider/p/10205706.html
【转】FluentAPI详细用法相关推荐
- Android命令行工具logcat详细用法!
logcat是Android中一个命令行工具,可以用于得到程序的log信息. 见板凳详细说明! 本贴内容来自网络,引用网址为:http://hi.baidu.com/%C9%C1%D2%AB ...
- __declspec关键字详细用法
__declspec关键字详细用法 2009-01-21 16:23 __declspec用于指定所给定类型的实例的与Microsoft相关的存储方式.其它的有关存储方式的修饰符如static与ext ...
- mysql left/right join算法效率分析_mysql left join,right join,inner join超详细用法分析
MySQL left join,right join,inner join超详细用法分析 下面是例子分析 表A记录如下: aID aNum 1 a20050111 2 ...
- python sort怎么用,Linux Sort命令详细用法(有实例)
Linux Sort命令详细用法(有实例) sort是在Linux里非常常用的一个命令,管排序的,集中精力,五分钟搞定sort,现在开始! Linux sort命令进阶: 1 sort的工作原理 so ...
- vue性能优化-------vendor优化详细用法(瘦身),减小体积,引入cdn
vue性能优化-------vendor优化详细用法(瘦身),减小体积,引入cdn 原创ChrisWang_ 最后发布于2019-05-24 10:25:58 阅读数 1332 收藏 展开 vue性 ...
- oracle rtrim(),Oracle ltrim() rtrim() 函数详细用法
嘿嘿,今天在论坛里看了一篇帖子,讨论ltrim() 函数的详细用法,下面我借几个高手的回答总结一下: 先看几个实例: SQL> select ltrim('109224323','109') f ...
- pythonrange函数用法_python range()函数详细用法
python range()函数详细用法 函数原型:range(start, end, scan): 参数含义:start:计数从start开始.默认是从0开始.例如range(5)等价于range( ...
- python中3 and not 5_python中not、and和or的优先级与详细用法介绍
前言 (小白专用)本次所分享的是Python中的not.and.or的执行时的优先级,以及他们的具体用法.本文比较详细,不喜勿喷. 一.not.and.or的含义以及优先级 对象 返回结果 优先顺序 ...
- Word查找替换详细用法及通配符一览表
转载自:https://www.cnblogs.com/whchensir/p/5768030.html Word查找替换详细用法及通配符一览表 使用通配符 要查找"?"或者&qu ...
最新文章
- 活下去,是一种信念 !
- #39;git pull#39;和#39;git fetch#39;有什么区别?
- 干货:5个维度构建电商全景大数据分析
- 架构设计(ASP.NET MVC+Knockout+Web API+SignalR)
- android 获取连接WiFi的名称
- C# 集合 泛型 匿名方法(四)
- python壁纸超清全面屏_iOS 关于全面屏适配的方案及UI在不同尺寸下适配方案
- delphi编程来记录QQ的聊天记录
- Transwarp Inceptor 问题记录与解决
- sql语句查询计算机系,SQL查询语句基础
- Android Studio中新建assets文件的两种方法
- 淘宝/天猫获取商品历史价格信息 API 返回值说明
- Windows下C++通过Hooks记录键盘敲击记录的代码
- 企业邮箱注册购买优惠有哪些,企业工作邮箱怎么注册购买?
- 【Linux高级驱动】网卡驱动分析
- ath10k 出现ath10k_htt_t2h_msg_handler+0xebc/0x1efc解决方案
- 记一次Redis被入侵(被黑)处理过程
- Xshell7如何查看登录密码
- js解决服务器和客户端存在时间差的问题
- win98与win7共享文件
热门文章
- java透明度_纯度与参考透明度
- 应用计算机金融 pdf,金融保险计算机技术及其在金融业中的应用.pdf
- watch the fixed address in qt
- pytorch迁移学习后使用微调策略再次提高模型训练结果
- 周围剃光头顶留长发型_?22岁亿万富翁凯莉登杂志,顶着5斤“鸟窝头”凹造型,绝代艳后...
- 双显卡单独分辨率_甜点光追显卡—带你实现GAMING梦!!!
- FLOPs衡量模型复杂度
- loss函数之MultiLabelSoftMarginLoss
- c语言popen函数多线程,关于多线程:多线程环境中的Python-Subprocess-Popen行为不一致...
- 《C++游戏开发》笔记十四 平滑过渡的战争迷雾(二) 实现:真正的迷雾来了