興味深い問題があります。たとえば、「Container」というタイプのメンバーを持つ「Container」というクラスを作成しました。次のようになります。
public class Container
{
public Contained cnt{ get; set; }
}
モデルには両方のテーブルが含まれており、私のDBは次のようになります。Containers(PK:id FK:Contained_ContainedId)Contained(PK:ContainedId)
EFコードは、最初にこの属性をContinedテーブルの外部キーとして正しくマップします。問題は、LINQを使用してこれらのオブジェクトを取得するときに発生します。
Container Con=(from Object in PersistentManager.Containers.OfType<Container> select Object).SingleOrDefault();
このように(または匿名タイプをキャストして)、コンテナーを取得します。問題は、Containedオブジェクトへの参照が常にnullであるということです。これはパフォーマンスのために意図的に作成されたものだと思いますが、今回はオブジェクト全体を復元するために必要です。Intellitraceは、テーブルを結合していないことを示しているので、他に何かを指定する必要があると思います。何かアイデアはありますか?
Allrigth、Basicのおかげで、include句を使用して問題を解決しました。コンテキストが閉じた環境で遅延読み込みを使用する方法があるべきだと思います(多層パターンは常にこれらのオブジェクトを破棄することをお勧めします)