Asp.net mvc MVC在引擎盖下吸烟吗?神秘实体重命名
在我的模型中:Asp.net mvc MVC在引擎盖下吸烟吗?神秘实体重命名,asp.net-mvc,ef-code-first,Asp.net Mvc,Ef Code First,在我的模型中: public class ContractCategory { public int ContractCategoryID { get; set; } public int Name { get; set; } public ICollection<Charge> Charges { get; set; } public virtual ICollection<ContractParentI
public class ContractCategory
{
public int ContractCategoryID { get; set; }
public int Name { get; set; }
public ICollection<Charge> Charges { get; set; }
public virtual ICollection<ContractParentItem> ContractParentItems { get; set; }
public virtual ICollection<ContractChildItem> ContractChildItems { get; set; }
}
合同类别
ies?
是的,合同类别的错售是故意的,我想符合附件“s”
MVC为什么要改变它
更新
我想这比我想象的要聪明!我认为多重化只发生在一个“s”的附属物上。这里不是简单的,但是正确的合同类别多重化应该是合同类别,所以这就是为什么你会得到它 如果您真的希望这样拼写,EF允许您更改要保存到的表的名称
请参见此处的答案:它将自动将表名的实体名复数 如果不希望出现这种行为,可以在
DbContext
子类中将其关闭:
protected override void OnModelCreating(DbModelBuilder modelBuilder) {
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
}
模型创建时受保护的覆盖无效(DbModelBuilder modelBuilder){
modelBuilder.Conventions.Remove();
}
或者显式地将其映射到表。使用注释或fluent API(
.ToTable(“categoris”)
)。或者,如果可能,可以使用下划线。根据经验,带有下划线的实体不会被重命名,因此合同类别将成为合同类别。不确定是否开玩笑,但这是类别的正确复数形式。多个类别是多个类别。(见第4项)不是开玩笑,我写的ContractCategoris是故意的,只是想附加一个看起来像是ContractCategory
正确的复数形式的sts-你不想要复数形式吗?这个答案的可能副本不值得投反对票。这是正确的信息,基于最初的问题,不清楚OP是否理解正确的复数形式,或者“s”是否是故意的。我谦虚地不同意,因为我的笔记在提交答案之前。无论哪种方式,答案都应该在我澄清后删除@汤米我在看到你的澄清之前就把答案填进去了。记住,StackOverflow不会实时更新问题,因为我正在为您研究答案。请注意,我尽可能地礼貌,因此“不要在这里装模作样”开始了。@CubanX第1点好的..(对不起),第2点无效
CREATE TABLE [dbo].[ContractCategories] (
[ContractCategoryID] [int] NOT NULL IDENTITY,
[Name] [int] NOT NULL,
CONSTRAINT [PK_dbo.ContractCategories] PRIMARY KEY ([ContractCategoryID])
)
protected override void OnModelCreating(DbModelBuilder modelBuilder) {
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
}