私は、ASP.Net MVCベースのアプリケーションのEntity Frameworkを評価しようとしています。 私の会社は顧客にSQLデータベースを出荷し、顧客がこのデータベースを変更するためのツールを提供しています。彼らは自分のフィールドを追加し、既存のフィールドを変更します(通常はそれを大きくします)が、私たちが出荷したフィールドは削除しません。彼らはおそらく独自のテーブルを追加することもできます。彼らはデータベースと各テーブル/フィールドと各フィールドのカスタム検証情報を記述するメタデータテーブルを変更します。私たちはすでにデータベースにフィールドを追加し、メタ情報テーブルを作成するツールを持っています。 例、 "Patient"という表が出荷されています。彼らはこのテーブルに "LastVisitDate"という名前のフィールドを追加して、このフィールドをメタ情報(例:Label = "Last Visit Date"、FieldType = "DateTime"、MinValue = "1/1/2000"など)でFieldDefinitionsテーブルに登録できます。 」など) このシナリオを考えると、我々はxmlファイル(例:(簡体字)に基づいてオンザフライでUIを生成しますEntity Frameworkは、顧客がデータベースを変更できる場合に便利ですか?
<fields>
<Patient.LastName>
<Patient.FirstName>
<Patient.LastVisitDate> <!-- Added by customer -->
<fields>
基本的には、私たちのアプリケーションが解雇されるたびに、私はなることはありませんテーブル構造が何であるか(何百ものテーブルがありますが、わかりやすくするためにそれらを残しています)
このようなシナリオでは、エンティティフレームワークを使用できますか? SQLを構築する必要がありますCRUD操作を達成するためにオンザフライでクエリを実行しますが、EFを使用してこれを達成する方法はわかりません。
おかげ
これは、どれくらいの工夫をしているのかによって異なります。 Entity Frameworkは、フィールドを説明するプロパティを追加できる場合にのみ有効です。そのためには、型定義を動的に作成し、新しい 'DbModelBuilder'を使って型定義を登録する必要があります。あなたは 'TypeBuilder'に精通していますか?動的に作成された型は、基本的な 'Patient'クラスから継承することができるので、強く型付けされたクエリー(context.Patients where patient.LastName ==" Doe "select patient')作成されたフィールド。 – hvd