2

Entity Framework と ORM は初めてですが、アプリケーションの動作方法を多少リファクタリングすることを考えているという特殊な状況がある可能性があります。

現在、私たちはインメモリ分散キャッシュ アーキテクチャを使用しています。基本的にはインメモリ データベースとして、かなり非効率的でエラーが発生しやすい方法で使用しています。これにより、永続データとの同期や、キャッシュ内のオブジェクトでさえ一貫性がありません。

コアに戻って、Entity Framework のような ORM の何らかの形式を統合するか、SQL 内に手動でストアド プロシージャを作成して、複雑なクラスの作成に必要なデータを取り込むことを考えています。

SomeDashboard例として、要求された (SQL に格納された) に基づいて設定される多くのプロパティを持つ のクラスがあるとしますが、やなどDashboardの に関連するオブジェクトの多くのリストがあります。次のように記述できます。複数の結果セットをプルバックしてそれらすべてのリストとオブジェクト値を作成する単一の DB 要求を利用するストアド プロシージャ。DashboardProductsReviews

それを行うストアド プロシージャを作成するか、複数のストアド プロシージャを作成してデータを分割して取得する (つまり、より多くの SQL 呼び出しを行う) か、Entity Framework を便乗してすべてのオブジェクトをまとめて断片化する方がよいでしょうか?

揮発性になるもので、頻繁に再構築する必要があります。オブジェクトを構築するたびに非常に多くの接続と非常に多くのリクエストがあるデータベースのスケーリングについて心配していました。

おそらく、これは何らかの方向性を与えるのに十分な意味があります。せいぜいあいまいであることはわかっています。

Entity Framework に関連する質問の他の部分は、既存のデータベースとクラスにすべてをマップするのはどれくらい難しいですか?

大まかに言うと...インメモリ分散キャッシングの統合があまりよく考えられておらず、「先制的に最適化」するような方法で行われたため、解決するよりも多くの問題を引き起こしているように感じます。そのため、根本に戻って SQL を多用し、必要に応じて選択的にキャッシングを統合し、SQL のパフォーマンスが問題になったときに最適なアイデアのように思えます。

4

1 に答える 1

1

質問の最初の部分については、Entity Framework で熱心な読み込みを使用して、データを照会できるようにする必要があります。これが OR/M を使用する目的です。OR/M が SQL データ ソースへのデータの読み取りと書き込みの生の部分を実行している間、ユーザーはアプリケーション コードに集中します。

この MSDN の記事を確認してください: Loading Related Entities

約...

Entity Framework に関連する質問の他の部分は、既存のデータベースとクラスにすべてをマップするのはどれほど難しいかということです。

これには決定的な答えはありません。データベースの設計に依存する場合があります。データベースが優れたリレーショナル デザイン プラクティスで構築されている場合、通常、そのデータベースに対して OR/M を構成する方が簡単です。

于 2016-03-20T09:01:54.550 に答える