0

私が現在取り組んでいるアプリケーションでは、ユーザーによって定義され、テーブルが動的に生成されるため、dbスキーマがわからない部分があります。

実行中のアプリケーションは、ASP.NetMVC3とSQLServer2008R2です。このようなアプリケーションの場合、データオブジェクトとデータアクセス層に何を使用することをお勧めしますか。

1つのオプションは、DALからデータテーブルを返し、それらを使用することです。しかし、それらは型指定されていません。オプションは、結果セットから動的にオブジェクトを作成することです。しかし、それはあまりうまく機能しません。

他に方法はありますか?EntityFrameworkのCodeFirstは役に立ちますか?Expandoオブジェクトはどうですか?

非常に重要なことの1つは、アプリケーションが非常にデータ量が多く、GBのデータのようなものであることです。

4

1 に答える 1

0

ユーザーがテーブルを動的に作成するアプリケーションは、Entity Framework のシナリオではありません。エンティティ フレームワークでは、テーブルにマップされたコンパイル済みのクラス (+ 規則によって推論されない場合はマッピング) が必要であり、これらのクラスを利用するには、コードでこれらのクラスを使用する必要があります。

私の意見では、テーブルが動的に作成されるアプリケーションは、厳密に型指定されたアクセスや優れたパフォーマンスを期待できるものではありません。これらの要件は両方とも、(設計時に定義された) 明確に定義された一連のクラスに対してコードを記述し、これらのクラスのコードとデータ アクセスを最適化することを想定しています。あなたのシナリオでは、これは不可能です。型指定されていないデータセットと動的に作成された SQL + ASP.NET データ バインド コントロールを使用し、ほとんどの場合に機能することを願っています。

編集:

これで、MVC3 = データ バインド コントロールなしを使用したいことがわかりました。型指定されていないデータセットを検査し、事前にわからない構造を持つデータを表示、編集、および検証できるようにする UI を作成するコードを作成する必要があります。これは通常、新しく作成されたテーブル、制約、フィールド サイズ、null 許容列などを記述する独自のメタ モデルが必要であり、この情報を使用して UI を作成し、おそらくその情報から型指定されていないデータセットを準備することを意味します。

于 2011-06-21T07:01:11.203 に答える