EF从模型生成数据库时复数表的名称

Maj*_*jid 6 sql entity-framework visual-studio-2010 pluralize ef-model-first

我在EF中有一些模型和表格,你可以在这里看到其中一个:

期权模型

现在,当我想从模型生成数据库时,它将's'添加到生成的sql中的表名:

CREATE TABLE [dbo].[Options] (
[Id] int IDENTITY(1,1) NOT NULL,
[Name] nvarchar(50)  NOT NULL,
[Price] int  NOT NULL
); 
Run Code Online (Sandbox Code Playgroud)

我也禁用了多个名称,但没有改变:

在此输入图像描述

这会导致部署Web应用程序时出错.我怎样才能防止多元化?

Mic*_*hie 4

只需重写 OnModelCreating 方法并删除 \xe2\x80\x9cPluralizingTableNameConvention\xe2\x80\x9d 约定即可。因此,您告诉实体框架不要使用复数表名称,只需添加

\n\n

更新

\n\n
 protected override void OnModelCreating(DbModelBuilder modelBuilder)\n {    \n     modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();\n }\n
Run Code Online (Sandbox Code Playgroud)\n\n

它将删除默认附加到所有模型构建器的复数约定

\n\n

您还需要添加命名空间

\n\n
System.Data.Entity.ModelConfiguration.Conventions;\n
Run Code Online (Sandbox Code Playgroud)\n\n

希望它会有所帮助

\n