• 设置主键
    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/wangshaod/p/10025836.html

【转】FluentAPI详细用法的更多相关文章

  1. FluentAPI详细用法

    设置主键 modelBuilder.Entity<x>().HasKey(t => t.Name); 设置联合主键 modelBuilder.Entity<x>().Ha ...

  2. C#播放声音的四种方法 +AxWindowsMediaPlayer的详细用法

    C#播放声音的四种方法 第一种是利用DirectX 1.安装了DirectX SDK(有9个DLL文件).这里我们只用到MicroSoft.DirectX.dll和 Microsoft.Directx ...

  3. 在DOS下的DEBUG命令的详细用法

    在DOS下的DEBUG命令的详细用法 名称 解释 格式 a (Assemble) 逐行汇编 a [address] c (Compare) 比较两内存块 c range address d (Dump ...

  4. __declspec关键字详细用法

    __declspec关键字详细用法 __declspec用于指定所给定类型的实例的与Microsoft相关的存储方式.其它的有关存储方式的修饰符如static与extern等是C和C++语言的ANSI ...

  5. CString.Format的详细用法(转)

    CString.Format的详细用法(转) 在MFC程序中,使用CString来处理字符串是一个很不错的选择.CString既可以处理Unicode标准的字符串,也可以处理ANSI标准的字符串.CS ...

  6. IFRAM的详细用法

    IFRAM的详细用法:   IFRAM的详细用法:  <IFRAME>用于设置文本或图形的浮动图文框或容器. BORDER <IFRAME BORDER="3"& ...

  7. 【转】java.util.vector中的vector的详细用法

    [转]java.util.vector中的vector的详细用法 ArrayList会比Vector快,他是非同步的,如果设计涉及到多线程,还是用Vector比较好一些 import java.uti ...

  8. DOM Style样式对象的详细用法

    DOM Style样式对象的详细用法 HTML Style样式比较复杂,相应访问.修改方法也有所差异.参考相关资料,整理如下. 典型Html文件如下,有三种定义方式. <head>     ...

  9. css基础之 font的简写规则 以及 自定义 CSS3 @font-face详细用法

    Part 1 font简写 CSS的命名规则是用英文字母 数字 和下划线(一般用小写)来命名.简写css font的好处有三:一是写起来方便(就像键盘快捷键):二是简化代码:三是帮助你熟悉和深刻理解c ...

随机推荐

  1. windows 系统验证是否为正版

    博客园里边写这种帖子,足以证明我有多无聊.话不多说,上干货. 一台计算器如果没有操作系统,就是一块大的板砖,拿起来抡人太重,放地上做床又太小. 如何查看自己操作系统呢?windows7 桌面找到我的电 ...

  2. python模块的使用

    这位老师的文章说的很清楚:模块 这里我只说一下,我在使用过程中的一些注意事项. 比如,我创建了一个包,该包下面有两个模块:model1和model2,如下图 那么我们再python中怎样去使用自己创建 ...

  3. MyRedis

    目录 其他 其他 Redis面试题集

  4. Excel导出采用mvc的ExcelResult继承遇到的问题Npoi导出

    #region 构建Excel文档 //创建Excel文件的对象 NPOI.HSSF.UserModel.HSSFWorkbook book = new NPOI.HSSF.UserModel.HSS ...

  5. ORACLE数据库找回用户密码

    安装完oracle数据库后,登录时sys,system,scott这几个用户密码输入后都不对,查阅资料后解决 1,cmd下输入sqlplus,之后让你输入用户名,输入这个 "/as sysd ...

  6. Codeforces Round #544 (Div. 3)解题报告

    A.Middle of the Contest 考虑把输入的时间单位化成分钟,相加除以2就好了 #include<bits/stdc++.h> using namespace std; # ...

  7. (转)Extracting knowledge from knowledge graphs using Facebook Pytorch BigGraph.

    Extracting knowledge from knowledge graphs using Facebook Pytorch BigGraph 2019-04-27 09:33:58 This ...

  8. JQ清空select的已选择状态

    $('#payment').find("option:selected").attr("selected", false);

  9. vs2013编译obs源码

    obs源码下载 一种是在GitHub上下载最新的代码 git clone --recursive https://github.com/jp9000/obs-studio.git --recursiv ...

  10. 百度ueditor上传图片时如何设置默认宽高度

    百度ueditor上传图片时如何设置默认宽高度 一.总结 一句话总结:直接css或者js里面限制一下就好,可以用html全局限制一下图片的最大高度 直接css或者js里面限制一下就好,可以用html全 ...