c# – EntityFramework代码首先自引用一对一(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为我提供了以下消息:无法确定类型之间关联的主要结束…
我不能使用[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);
因此,经过一些严肃的测试,这似乎确实是解决方案.
标签:c,entity-framework,entity-framework-5,self-reference 来源: https://codeday.me/bug/20190624/1281550.html