实体框架代码列表第一个默认命名约定

时间:2012-05-09 09:01:50

标签: c# entity-framework

我正在尝试查找Entity Framework默认命名约定示例列表。我认为表格是<Entity>+s,例如用户...外键是User_Id但我希望看到所有开箱即用的约定列表 - IE实体框架将调用我的对象。

我不是在寻找约定类型 - 我知道了。我正在寻找实体框架的默认约定将命名我的数据库对象的定义/示例。为了清楚起见,我没有添加或删除任何约定。 EF附带了许多用于生成数据库对象的默认约定 - 我想知道EF的开箱即用默认约定将命名我的数据库对象。

我之所以需要这个是因为虽然我正在使用CodeFirst,但我会手工创建我的数据库对象,而不是让EntityFramework为我生成它(我的同事坚持这一点)。因此,我需要知道我应该将我的表,列,外键命名为什么......这样实体框架将找到/映射它们,而不需要显式映射。

例如

EF Default TableName Convention
      <Entity> + 's' (e.g ***Users***) 

EF Default Foreign Key Convention
      <Entity> + 'Id' (e.g ***UserId***)   

EF Default Primary Key Convention
      ***Id***  

我在哪里可以找到这个?

2 个答案:

答案 0 :(得分:8)

EF不提供检索所使用的约定集的机制。您只能remove预先配置的约定。

您可以在MSDN

上找到记录在案的会议列表

最初EF允许您自定义约定,但现在该部分已从API中删除。

修改

Convention: Table Name
Default: Entity + s (e.g Users)

PluralizingTableNameConvention

Convention: Foreign Key Relation
Default: Entity + Id (e.g UserId)

NavigationPropertyNameForeignKeyDiscoveryConvention

Convention: Primary Key
Default: Id

IdKeyDiscoveryConvention

答案 1 :(得分:1)

也许System.Data.Entity.ModelConfiguration.Conventions名称空间是您正在寻找的 此命名空间包含所有命名约定。