この問題を具体的に抱えている他の人を見つけることができなかったので、ここに行きます。
次のように定義された親子または一対多の関係として、あるエンティティが別のエンティティを単純に参照する単純なモデルがあります。
public class Parent
{
public int ID { get; private set; }
public string Name { get; private set; }
}
public class Child
{
public int ID { get; private set; }
public string Name { get; private set; }
public virtual Parent Parent { get; private set; }
}
関連するエンティティを除くすべての通常のプロパティでうまく機能する、それぞれの特定のマッピング ファイルを作成しています。それは常にヌルになります。プロパティに仮想/プライベートアクセサーがあるかどうかに関係なく、最初にコンテキストから個別に親のコピーをプルしない限り、ロードされません。私のマッピングは次のようになります。
HasRequired(t => t.Parent).WithMany().Map(t => t.MapKey("ParentID")).WillCascadeOnDelete();
これで間違っていることはありますか?私は一生これを理解することはできません。すべてのベースをカバーするために、次のようにエンティティをロードしています。
Context.Set<Child>().FirstOrDefault(x => x.ID == 1);
そして最後に、私が持っているいくつかの制約があります:
- モデルに外部キーをプロパティとして含めることができません。
- 親から子のコレクションを持つことはできません。