Ric*_*d D 5 c# entity-framework
我使用EF 6,有两个简单的POCO类,如下所示:
public class Person
{
public int PersonId { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
public class Company
{
public int CompanyId { get; set; }
public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
和我的背景
public class Context : DbContext
{
public Context() : base("name=codefirst")
{
}
public DbSet<Person> People { get; set; }
public DbSet<Company> Corporation { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
而EF产生的表格: dbo.Companies和 dbo.People
我的问题是为什么一个表名是人和其他表名是公司(我知道为什么是复数).我的意思是,一个表使用属性名称,另一个表使用类名?
提前致谢!
两者都使用其类名进行映射。
可能使您感到困惑的一个是Person类的映射。这是EF多元化规则之一,因为人是人的复数形式(意味着一个以上的人),因此EF将其映射为人。另一方面,它只是将Company类映射为Companies。
OnModelCreating()如果不喜欢,可以通过在方法中添加以下代码来关闭EF复数约定:
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();