代码:
public class A
{
public virtual int Id { get; set; }
public virtual Document Document { get; set; }
public virtual int? DocumentId { get; set; }
}
public class B
{
public virtual int Id { get; set; }
public virtual Document Document { get; set; }
public virtual int DocumentId { get; set; }
}
public class Document
{
public virtual int Id { get; set; }
public virtual string Data { get; set; }
}
文档是我从其他几个实体引用的实体类型。在实体A中,它是可选的,对于实体B,B需要存在。文档只会从单个A,B,C等类引用,并且不会被多个引用。
因此,Document表中的FK /字段AId和BId都应该可以为空。
我似乎无法正确配置,EF抱怨它无法解决关系的原则。
这是我迄今为止最好的尝试,但不起作用:
modelBuilder.Entity<A>()
.HasOptional(c => c.Document)
.WithOptionalPrincipal();
modelBuilder.Entity<B>()
.HasRequired(t => t.Document)
.WithRequiredPrincipal();
谢谢。