![](/img/trans.png)
[英]How to specify foreign key property for one to zero..one relation using fluent api in Entity Framework
[英]How to specify foreign key column name, via fluent API, with Entity Framework 7?
我正在尝试来自 EF6 的实体框架 7。 我正在使用现有数据库,手动编写模型配置(不通过 EF 使用反向工程架构),因为我已经有一个包含所有必要实体类的项目。 我想弄清楚如何为HasOne
关系指定列名。 正在生成的查询对HasOne
使用的属性使用了错误的名称。 这是我对这个特定模型的配置......
modelBuilder.Entity<Season>(season =>
{
season.ForNpgsqlToTable("season");
season.HasKey(m => m.Id);
season.Property(m => m.Id)
.HasColumnName("id");
season.Property(m => m.Name)
.HasColumnName("name");
season.Property(m => m.Slug)
.HasColumnName("slug");
season.Property(m => m.DateEnd)
.HasColumnName("date_end");
season.Property(m => m.DateStart)
.HasColumnName("date_start");
season.Property(m => m.DateCreated)
.HasColumnName("date_created");
season.HasOne(m => m.Division)
.WithMany();
});
当对该实体的查询被调度时,除了外键之外的每一列都是正确的,它只是使用“DivisionId”的默认命名生成,而实际上该列只需要是“division”。
如何使用 fluent API 指定列名?
根据我的经验,EF 7 似乎还没有准备好将类引用映射到外键,我认为以下方法可行,但目前还不行:
season.Property<Division>("Division")
.ForSqlServerHasColumnName("division");
话虽如此,推荐的方法是映射支持类引用的外键属性,并使用它来配置映射列
season.Property(e => e.DivisionId)
.ForSqlServerHasColumnName("division");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.