1

私は、SQL データベース内のテーブルのペアにアクセスできるようにする必要がある自分用のユーティリティを作成しています。SqlEntityConnection Type Provider を使用したところ、使いやすいエンティティとしてテーブルから必要なデータが得られました。

私が気づいたことの 1 つは、プロジェクトの起動とコンパイルが大幅に増加したことです。これは、データベースに 100 を超えるテーブルがあり、必要な 2 つだけではなく、すべてのテーブルをコンパイルしてデータを取得しているためだと思われます。スキーマ内の必要なテーブルのみを参照するように EntityTypeProvider を制限する方法はありますか?

type private EntityConnection = SqlEntityConnection<ConnectionString="Server=Server;Initial Catalog=Database;Integrated Security=SSPI;MultipleActiveResultSets=true", Pluralize = true>

let private context = EntityConnection.GetDataContext()
4

1 に答える 1

2

私はこれを自分で試したことはありませんが、新しい「ADO.NET Entity Data Model」(edmx)ファイルをプロジェクトに追加し、既存のデータベースから生成させてから、モデルからすべてのテーブルを削除できると思います。コードにアクセスしたくない。

EDMX デザイナーは、SqlEntityConnection のパラメーターから参照できる *.csdl ファイルを生成しますLocalSchemaFile。の代わりにこのパラメーターを使用しますConnectionString

最終的に、エンティティ プロバイダーはデータベースへの変更を自動的に取得しなくなりますが、コンパイル時間は短縮され、重要なテーブルのみがコードに表示されます。

于 2014-04-21T18:33:46.553 に答える