私たちのプロジェクトは、1つの大きなMSSQLデータベースに依存しています。そのデータベースは他の多くのアプリに公開されています。それらのうちのいくつかは、EFデータベースの第1モデルを使用しています。そのデータベースには300を超えるテーブルがあります。それらのうちのいくつかは、アプリケーションの他の部分に使用する必要があります。データベースをリバースエンジニアリングすると、EFはすべてのテーブルを持つモデルを問題なく作成します。時には私たちのコードではテーブルを1つだけ使用していますが、まだ大きなモデルを宣言する必要があります。大きなEFデータベースモデルは、アプリのパフォーマンスを大幅に費やしますか
私はいつも大量のテーブルを持つモデルを初期化すると、パフォーマンスがアプリに損なわれることになります。私たちのアプリは、ほとんどのWeb-APIコントローラの数を含むMVCアプリケーションです私たちは、この
public string peaceOfData(int id)
{
using (modelWhit500tables largeMode = new modelWhit500tables())
{
return largeMode.onlyOneTable.Find(id).data;
}
}
のようなコードを持っているときのシーンの後ろに起こっ
。
データベース層の簡素化とデータベース設計の変更の容易なメンテナンスのために、大きなモデルが1つあります。
ちょうどメモとして、このような観点についてEFの洞察について話すが、NHibernateは持っ_lot_とすることはできませんSessionFactoryを構築するときにモデル/マップのパフォーマンスを "傷つける"ことができますが、XMLマッピングをキャッシュし、変更されていなければディスクからリロードするための回避策があります。ただし、セッションファクトリの構築は、通常、アプリケーションプールの起動ごとに1回発生します。 – kayess