2016-11-21 4 views
1

私は、このエンティティを持っている:Entity Frameworkの6遅延ロードの問題に

public class Crash : BaseModel 
{ 
    public string Message { get; set; } 
    public DateTime Time { get; set; } 
    public int ApplicationId { get; set; } 
    public virtual Application Application { get; set; } 

} 

次完璧とナビゲーションプロパティApplicationが正しい動作します

_context.Set<T>().ToList(); 

しかし、この1つは、それらのApplicationを埋めない:

_context.Set<T>().First(expression); 

取得したアイテムでは正しいアイテムが取得されますがプロパティApplicationnullです。

式を含むアイテムを見つけても、ナビゲーションプロパティの自動読み込みを実行するにはどうすればよいですか?

答えて

1

クエリに含めることで読み込む必要があります。これは熱心な負荷として知られています。

遅延ロードをオフにすることもできます。遅延ロードにアクセスするとナビゲーションプロパティがロードされます。しかし、これはパフォーマンスの問題を引き起こす可能性があることに注意してください。遅延ロードをオフにすると、グローバルな影響があります。

上記のようにインクルードなしでこの特定のプロパティをロードしたい場合は、プロパティをvirtual以外にすることができます。

Hereは、レイジーローディングなどの詳細情報のリンクです。

0

First()はコレクションではなく1つの値しか返しません。 ToList()とは異なります。

あなたのコントロールは、コレクションが来るのを待ちます。

単一値は単一値のコレクションではありません。

First()戻り値のレコードを1つ持つコレクションを作成する必要があります。 これは1つのレコードのリストになります。

関連する問題