无效的列名TableName_ID错误

本文关键字:ID 错误 TableName 无效 | 更新日期: 2023-09-27 18:30:35

我有两个表

  1. 属性列表 - 它存储属性用户添加的详细信息,带有FK
  2. 属性可用性 - 这是一个存储属性状态的表(现在可用,3 个月后,...

我正在尝试像这样对这两个表(Fluent API)强制执行一对多关系

public partial class PropertyListing
{
    [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int ID { get; set; }
    public string StreetAddress { get; set; }
    //the column that links with PropertyAvaibility table PK
    public byte? Availability { get; set; }
    public bool Status { get; set; }
    public virtual PropertyAvailability PropertyAvailability { get; set; }
}
public partial class PropertyAvailability
{
    public byte ID { get; set; }
    public string Status { get; set; }
    public virtual ICollection<PropertyListing> PropertyListings { get; set; }
    public PropertyAvailability()
    {
        PropertyListings = new List<PropertyListing>();
    }
}

我打电话给OnModelCreating

modelBuilder.Entity<PropertyListing>()
        .HasRequired(pl => pl.PropertyAvailability)
        .WithMany(pa => pa.PropertyListings)
        .HasForeignKey(pl => pl.Availability);

它失败并出现此错误,

列名"PropertyListing_ID"无效。

我使用的教程:http://www.entityframeworktutorial.net/code-first/configure-one-to-many-relationship-in-code-first.aspx

可能出了什么问题?我知道我已经搞砸了 EF6 期望的命名约定,但没有解决方法吗?

PS:我已经在我们的 SO 中看到过 ef3 左右提出的这个问题,但我找不到任何解决方案,因此这个问题。

无效的列名TableName_ID错误

将 Column 属性添加到您的类中

public partial class PropertyListing
{
    [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity), Column("ID")]
    public int ID { get; set; }
    public string StreetAddress { get; set; }
    //the column that links with PropertyAvaibility table PK
    public byte? Availability { get; set; }
    public bool Status { get; set; }
    public virtual PropertyAvailability PropertyAvailability { get; set; }
}