首页 > 解决方案 > 实体框架导航属性自定义命名

问题描述

在使用实体框架(代码优先)在两个实体之间建立连接时,我发现很难处理属性的命名。

在下面的代码示例中,它将找不到正确的连接,并会要求一个名为的列,该列airline_iata_airline_code不存在,因此即使我设置了外键属性(给它相关类的类名)并定义了它也会失败要在其他类中查找的列名。

[ForeignKey("AirlineDto")]
[Column("iata_airline_code")]
public string IataAirlineCode { get; set; }

这不起作用,但如果我将其更改为以下示例,它会找到关系并从数据库中返回正确的数据(而不是名称更改)。

[ForeignKey("AirlineDto")]
[Column("iata_airline_code")]
public string AirlineIataAirlineCode { get; set; }

问题是我不希望它被调用<RelatedClass><PrimaryKey>。我希望能够定义我自己的名字。如何才能做到这一点?

标签: .net-coreentity-framework-coreef-code-first

解决方案


您没有指定是否使用 Code First,但在 DBConext 类上尝试以下操作:

    protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    modelBuilder.Entity<YourClassName>().Property(x => x.IataAirlineCode).HasColumnName("iata_airline_code");
}

推荐阅读