无效的列名TableName_ID错误
本文关键字:ID 错误 TableName 无效 | 更新日期: 2023-09-27 18:30:35
我有两个表
- 属性列表 - 它存储属性用户添加的详细信息,带有FK
- 属性可用性 - 这是一个存储属性状态的表(现在可用,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 左右提出的这个问题,但我找不到任何解决方案,因此这个问题。
将 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; }
}