3

現在、EntityFrameworkと連携してSQLServer2008R2データベースに接続するシステムを調整しています。

新しいパーツの場合、主要なユーザーは、通常のユーザーが使用できるエンティティを追加、変更、および削除する必要があります。名前と属性を持つオブジェクトを保存するシステムを作成する前に、主要なユーザーが提供しているエンティティを使用して(簡略化されたエンティティデザイナーを介して)データベースを動的に作成できるかどうかを確認したいと思いました。

私は少し検索しましたが、インターネットで検索しましたが、このようなものは見つかりませんでした。たぶん、ここの誰かが私を正しい方向に押し進める何かを知っていますか?

4

1 に答える 1

1

テーブル、列、インデックス、外部キーを動的に定義するのが最善のようです。エンティティと属性を持つ「データベースのデータベース」スキーマを使用する場合、データベースに効果的にインデックスを付けることはできません。クエリは非常に遅くなり、厄介になります。

SQL Server管理オブジェクト(SMO)を使用して、データベーススキーマをクエリおよび変更できます。私はそれらを複数回使用しました。彼らは働き、一緒に働くのはとてもいいです。

私は、EntityFrameworkがここのテーブルに多くをもたらすとは確信していません。EFは、静的スキーマでクエリとDMLを表現するのに適しています。動的スキーマを使用する場合、ほとんどの利点が失われます。もちろん、エンティティキーの管理や、T-SQLの代わりにエンティティSQLを使用できるなど、いくつかの利点があります。欠点としては、実行時にすべてのEFメタデータを作成する必要があります(おそらくEDMXファイルまたは動的アセンブリを生成します)。

それだけの価値はないと思います。実行時にデータベーススキーマを構築し、動的に構築されたT-SQLを使用してそれに対してクエリを実行することを強く検討します。EFを使用してシステムに対して作業するよりも、これを行う方がはるかに簡単です。

その意味で、あなたは戻ってきてDataTablesGridViews5年前でも良いスタイルと考えられていました。おそらくそれほど悪くはないでしょう。

于 2012-11-28T17:07:02.537 に答える