我有这堂课:
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);
但这没效果。
答案 0 :(得分:4)
如果有人可以确认这是正确的话,我发现了一些看起来可能是它的东西:
modelBuilder.Entity<SecureMessage>()
.HasOptional(x => x.ParentMessage)
.WithOptionalDependent(x => x.ChildMessage);
经过一些严肃的测试后,这似乎确实是解决方案。