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 の関係を作成することは可能ですか? どのように?/ なぜだめですか?/どうにか回避する方法はありますか?
ありがとう!