有没有办法在EF Core RC 2中执行此代码?

  1. protected override void OnModelCreating(ModelBuilder modelBuilder)
  2. {
  3. modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
  4. }
EF RC2版本没有这个惯例.这是来自EF Core团队:

In past pre-release of EF Core, the table name for an entity was the
same as the entity class name. In RC2 we now use the name of the DbSet
property. If no DbSet property is defined for the given entity type,
then the entity class name is used.

现在,如果您想恢复到表的RC1命名约定,您有3种方法可以使用:

1.为DbSet属性选择奇异名称:

一种方法是单独化你的DbSet属性名称(我不喜欢).比如说你有一个Book实体,并且想要映射到Book表:

  1. public DbSet<Book> Book { get; set; }

2.使用ToTable()Fluent API:

当然,您总是可以使用流畅的API来覆盖任何适当的约定,并根据您的需要指定表名:

  1. modelBuilder.Entity<Book>().ToTable("Book");

3.编写自定义公约:

仅仅因为EF Core RC2没有这方面的约定,这并不意味着我们不能自己编写.为此,首先我们需要在ModelBuilder对象上创建一个扩展方法:

  1. using Microsoft.EntityFrameworkCore.Metadata.Internal;
  2.  
  3. public static class ModelBuilderExtensions
  4. {
  5. public static void RemovePluralizingTableNameConvention(this ModelBuilder modelBuilder)
  6. {
  7. foreach (IMutableEntityType entity in modelBuilder.Model.GetEntityTypes())
  8. {
  9. entity.Relational().TableName = entity.DisplayName();
  10. }
  11. }
  12. }

然后我们简单地从DbContext对象上的OnModelCreating方法调用它:

  1. protected override void OnModelCreating(ModelBuilder modelBuilder)
  2. {
  3. modelBuilder.RemovePluralizingTableNameConvention();
  4. }

关闭时:

我不喜欢复数表格名称,我比其他选项更喜欢最后一个选项,并且顺其自然.也就是说,这是我的个人意见,其他开发者可能会发现这三种方式中的任何一种都比其他方式更优惠,并选择与之相配:)

entity-framework-core – 实体框架核心RC2表名称复数的更多相关文章

  1. Entity Framework(实体框架 EF)

    什么是Entity Framework呢(下面简称EF)? EF(实体框架)是ADO.NET中的一组支持开发面向数据的软件应用程序的技术,是微软的一个ORM框架.ORM(对象关系映射框架):指的是面向 ...

  2. Entity Framework Core 1.1 Preview 1 简介

    实体框架核心(EF Core)是Entity Framework的一个轻量级,可扩展和跨平台版本. 10月25日,Entity Framework Core 1.1 Preview 1发布了. 升级到 ...

  3. .Net Entity Framework Core 用 HasColumnType 配置浮点数精度

    一.前言 前段时间用.Net Entity Framework core搭建框架,需要配置浮点数的精度,发现.Net Entity Framework core 并没有HasPrecision方法.在 ...

  4. C# 6 与 .NET Core 1.0 高级编程 - 38 章 实体框架核心(上)

    译文,个人原创,转载请注明出处(C# 6 与 .NET Core 1.0 高级编程 - 38 章 实体框架核心(上)),不对的地方欢迎指出与交流. 章节出自<Professional C# 6 ...

  5. C# 6 与 .NET Core 1.0 高级编程 - 38 章 实体框架核心(下)

    译文,个人原创,转载请注明出处(C# 6 与 .NET Core 1.0 高级编程 - 38 章 实体框架核心(下)),不对的地方欢迎指出与交流. 章节出自<Professional C# 6 ...

  6. 从实体框架核心开始:构建一个ASP。NET Core应用程序与Web API和代码优先开发

    下载StudentApplication.Web.zip - 599.5 KB 下载StudentApplication.API.zip - 11.5 KB 介绍 在上一篇文章中,我们了解了实体框架的 ...

  7. 创建ASP.NET Core MVC应用程序(3)-基于Entity Framework Core(Code First)创建MySQL数据库表

    创建ASP.NET Core MVC应用程序(3)-基于Entity Framework Core(Code First)创建MySQL数据库表 创建数据模型类(POCO类) 在Models文件夹下添 ...

  8. 对Entity Framework Core的一次误会:实体状态不跟踪

    在 Entity Framework 中,当通过 EF 使用 LINQ 查询获取到一个实体(实际得到的是 EF 动态生成的实体类的代理类的实例)时,这个实体的状态默认是被跟踪的.所以,当你修改实体的某 ...

  9. 使用Entity Framework Core需要注意的一个全表查询问题

    .NET Core 迁移工作如火如荼,今天在使用 Entity Frameowork Core(又名EF Core)时写了下面这样的 LINQ 查询表达式: .Where(u => u.Id = ...

随机推荐

  1. ADT中创建Android的Activity

    去创建Activity New->Other->Android->Android Activity->BlankActivity: 输入对应的信息: 创建完毕后,可以看到新建了 ...

  2. 树莓派 more

    树莓派 rusthttps://tech.iotcomeon.com/2018/06/tech/deploy/515/sudo curl https://sh.rustup.rs -sSf | sh ...

  3. Flutter的运行环境标识

    Flutter的四种运行模式:Debug.Release.Profile和test ,在实际开发中,我们往往需要根据当前运行模式的不同,选择不同的操作,比如在Debug模式启用Log.在生产模式关闭L ...

  4. python动态导入模块——importlib

    当在写代码时,我们希望能够根据传入的选项设置,如args.model来确定要导入使用的是哪个model.py文件,而不是一股脑地导入 这种时候就需要用上python的动态导入模块 比如此时文件结构为: ...

  5. MongoDB数据表添加字段

    db.tshare_a.insert( { "_id" : ObjectId("57172b0f657f8bbb34d70147"), "picUrl ...

  6. [译]在Pandas的Dataframe中删除行、列

    导入模块 import pandas as pd 创建dataframe data = {'name': ['Jason', 'Molly', 'Tina', 'Jake', 'Amy'], 'yea ...

  7. ajaxSubmit 页面生成的html 中含有表单提交表单方式

    $("#form_title").ajaxSubmit({ //页面生成的html 中含有表单提交表单方式 dataType: "json", success ...

  8. vs2015.无法运行rc.exe

    1.参考文章:无法运行“rc.exe” - wb175208的专栏 - CSDN博客.html(https://blog.csdn.net/wb175208/article/details/83546 ...

  9. js 上传txt格式文件

    判断文件是否为.txt格式: $(".delbao .file").on("change",function(){ var acceptType = $(thi ...

  10. linux中信号的API详解实例

    /************************************************************************* > File Name: signal.c ...