モデルの複数のエンティティによって共有されるオブジェクトにナビゲーションプロパティを配置する必要はありません。ここで私が何を言っているかの例です:Entity Framework 4.1の多対多関係をナビゲートする方法についての考え方
public abstract class SomeEntity
{
public Guid Id {get;set;
public virtual ICollection<Attachment> Attachements {get;set;}
}
public class User: SomeEntity
{
...
}
public class Thing: SomeEntity
{
...
}
public class Attachment
{
public Guid Id {get;set;}
...
}
私はユーザーと物事のための結合エンティティのナビゲーションプロパティを持つ避けるために疲れています。その背後にある私の考えは、Lazy Loadingを使用している状況を避けることです。
AttachemntにはICollection<SomeEntity> Entites
があると考えられましたが、それは以前のマッピングの問題を抱えているため、動作するかどうかはわかりません。私が持っていた別の考えは、Attachmentsからエンティティへ手動でナビゲートすることでしたが、それはオブジェクトのコレクションを戻して型を調べるメソッドを書く必要があることを意味します。
私はEFはこのようなリンクテーブルを生成するが午前:
HasMany(e => e.Attachments).WithMany().Map(m => { m.MapLeftKey("AttachmentId");
m.MapRightKey("UserId");
m.ToTable("User_Attachments");
});
は私の添付ファイルテーブルを見ると、バックリンクテーブルのいずれかへのFKはありません。私はそれらに戻ってナビゲートしていないので、意味があります。
質問は何ですか? –
@LadislavMrnka、Attachmentエンティティでナビゲーションプロパティを使用しないと、別のエンティティに戻る方法はありません。 – DDiVita
したがって、ナビゲーションのプロパティを必要とするかどうかを指定します。戻るに移動する場合は、 'SomeEntity'コレクションのナビゲーションプロパティを作成してください。 –