我有这个类:
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);
因此,经过一些认真的测试,这似乎确实是解决方案。