[英]EntityFramework Code First self-referencing one to one (1:1) relationship mapping - Unable to determine the principal end
我有這門課:
public class Message
{
public long Id { get; set; }
public string Subject { get; set; }
public string Message { get; set; }
public virtual Message ParentMessage { get; set; }
public virtual Message ChildMessage { get; set; }
//...
}
使用EntityFramework
Code First
Add-Migration
為我提供了以下消息: Unable to determine the principal end of an association between the types...
我不能使用[Required]
屬性,因為這個線程中的第一條消息沒有父節點,線程中的最后一條消息將沒有子節點...我該如何映射這個?
我試過了:
modelBuilder.Entity<Message>()
.HasOptional(x => x.ParentMessage);
modelBuilder.Entity<Message>()
.HasOptional(x => x.ChildMessage);
但那沒用。
如果有人可以驗證這是正確的,我發現它看起來可能是它的東西:
modelBuilder.Entity<SecureMessage>()
.HasOptional(x => x.ParentMessage)
.WithOptionalDependent(x => x.ChildMessage);
因此,經過一些嚴肅的測試,這似乎確實是解決方案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.