[英]Invalid Column name generated by EFCore on a one-to-one relationship
我試圖在我的上下文類中設置一對一的外鍵關系,但我不斷收到以下錯誤。 我發現了一個類似的帖子,但這似乎並沒有解決我的問題,因為我在模型中明確指定了關系。 我確認:
我試圖通過在 ServerList.ServerName 列中添加注釋ForeignKey("ServerId")
來解決這個問題,但這沒有用。 為什么 EFCore 嘗試創建此列? 為什么 ForeignKey 注釋沒有解決這個問題?
無效的列名“ServerListServerName”。
我的上下文類:
modelBuilder.Entity<Server>(entity =>
{
entity.HasOne(d => d.ServerList)
.WithOne(p => p.AwsServer)
.HasForeignKey<Server>(d => d.ServerName);
});
服務器.cs:
public partial class Server
{
[Key]
public int ServerId { get; set; }
public string ServerName { get; set; }
public virtual ICollection<PockAdvCompany> Companies { get; set; }
public virtual ParentServer ParentServer { get; set; }
public virtual ServerList ServerList { get; set; }
}
服務器列表.cs:
public partial class ServerList
{
public virtual ICollection<PockAdvCompany> Companies { get; set; }
public virtual Server AwsServer { get; set; }
[Key,Column("ServerId")]
public string ServerName { get; set; }
}
這是因為您的ForeignKey("ServerId")
不是ServerList
的屬性,而是Server
的屬性。它應該是將該類指向其父類的屬性名稱。 ServerList
FK 也是string
,但 PK 是int
試試這個
public partial class ServerList
{
public virtual ICollection<PockAdvCompany> Companies { get; set; }
public virtual Server AwsServer { get; set; }
[ForeignKey("AwsServer")]
public int ServerId { get; set; }
}
希望這有幫助
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.