EntityFramework Code首先自引用一对一(1:1)关系映射 – 无法确定主要结束
我有这堂课:
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() .HasOptional(x => x.ParentMessage); modelBuilder.Entity() .HasOptional(x => x.ChildMessage);
但那没用。
如果有人能够validation这是正确的,我发现它看起来可能是它的东西:
modelBuilder.Entity() .HasOptional(x => x.ParentMessage) .WithOptionalDependent(x => x.ChildMessage);
经过一些严肃的测试后,这似乎确实是解决方案。