首页 > 解决方案 > 映射具有不同名称的 EF 外键

问题描述

我有以下域类:

public class Product
{
  public Guid? Id { get; set; }
  public string? Name { get; set; }
}

public class Order
{
  public Guid? Id { get; set; }
  public string? Address{ get; set; }
  public Guid? ProductId{ get; set; }
}

我没有使用导航属性来设置外键,而是按如下方式进行:

    public void Configure(EntityTypeBuilder<Order> builder)
    {
        builder.HasOne<Product>()
               .WithMany()
               .HasForeignKey(c => c.ProductId);
    }

我做更新数据库时的问题,它说字段 ProductId 不存在。这是因为它在表产品中命名为 Id,但在表顺序中它被命名为 ProductId。有没有办法用不同的名字映射外键?

标签: c#entity-framework

解决方案


修改Product

public class Product
{
  public Guid? Id { get; set; }
  public string? Name { get; set; }

  public ICollection<Order> Orders {get; set;}
}

关系会正常运作。

参考:关系


推荐阅读