EFコードを最初に選択するか、モデルを最初に選択する必要があります。コードファーストとデータロード
私は、開発効率とIoCフレームワーク統合のための最も簡単なソリューションのための最良のソリューションは何か分かりません。
私は最初にコードから始めようとしましたが、ナビゲーションプロパティをIQueryableとして使用することができませんでした。私は、ナビゲーションプロパティを宣言するとき、私は次のようにいるICollectionを使用します。
public class Invoice {
...
public ICollection<LineItem> LineItems { get; set; }
...
}
と
public class LineItem {
...
public Invoice Invoice { get; set; }
...
}
私は請求書をロードすると、私のLineItemsコレクションがあるため遅延ロードの空です。
ただし、このコレクションをIQueryableとして使用するには、このプロパティをデータベースから読み込むと、このInvoiceのすべてのLineItemがデータベースからロードされますか?
私の考えは、IQueryableを使用してパフォーマンスを向上させるために、できるだけデータベースの読み込みを少なくすることです。
私は間違っていますか?ベストプラクティスは何ですか?
私はデータベースを最初に使用するときに、プロキシクラスやラッパーを記述しなくても、すぐにIQueryableとしてナビゲーションプロパティを使用できます。
ありがとうございました
「マイナビゲーションプロパティをIQueryableとして」 - これは必ずしもプラスではありません。 –
なぜですか?自分のコレクションプロパティにクエリを適用してデータベースが乱れる前にSQLクエリを作成することができます – xwrs
lazyloadingのように見えます。実際にレコード/エンティティにアクセスするまで、実際のクエリをデータベースに遅らせます。しかし、場合によっては、eagerloadingやlazyloading/proxyをオフにする必要がありますが、それは別の話です。 –