2

我想创建 0..1 到 0..1 的关系,但是,由于某种原因,在尝试插入数据库时​​,Entity Framework 不断告诉我:

“保存不为其关系公开外键属性的实体时发生错误。EntityEntries 属性将返回 null,因为无法将单个实体标识为异常源。通过公开外键可以更轻松地处理保存时的异常实体类型中的关键属性。有关详细信息,请参阅 InnerException。

我的部分代码:

public class Usable {

    public int ID { get; set; }

    //[ForeignKey("ObjectOfInterest")] -> uncommenting this causes:
      //The ForeignKeyAttribute on property 'MentionID' on type
      //'MetaDataModeller.Models.Core.Category' is not valid. The navigation property
      //'ObjectOfInterest' was not found on the dependent type 
      //'MetaDataModeller.Models.Core.Category'. The Name value should be a valid 
      //navigation property name.
    //[ForeignKey("Mention")] -> uncommenting this makes no difference
    public int? MentionID { get; set; }
    public virtual ObjectOfInterest Mention { get; set; }
}

public class ObjectOfInterest {

    public int ID { get; set; }

    public virtual Usable Use { get; set; }
}

我的 DbContext 祖先在重写的 OnModelCreating 中有此代码:

modelBuilder.Entity<Usable>()
    .HasOptional(usable => usable.Mention)
    .WithOptionalDependent(obj => obj.Use);

那么 - 是否可以创建 0..1 到 0..1 的关系?如何?/ 为什么不?/有没有办法以某种方式绕过它?

谢谢!

4

0 回答 0