0

管理者が C# を介してデータベースと対話し、要件に合わせて新しいテーブルと列を追加できる Web アプリケーションを構築しようとしています (非常に単純なデータベース スタジオのようなものです) が、スパゲッティ アプリケーションを作成するだけではありません。 .

だから私は、彼がテーブルを作成し、テーブルを使用してそれらを構築するときに、これらのものを動的に (自動的に) 許可する方法を理解しようとしています:

1- ビジネス オブジェクトまたはエンティティ (クラス、そのオブジェクトおよびプロパティ)。2- データ アクセス層 (データベースに接続し、項目 (オブジェクト) を取得、追加、更新、削除する単純なメソッド)。

これは可能ですか?それを達成する方法についての指針はありますか?

編集

リンクを開いたところです!! .. データ バインド コントロールなどについて話しています。.. 私の質問はそれよりもはるかに高度です!. N層アプリケーションを構築するときは、データベーススキーマと実装から始めます。プログラムで簡単に実行できます。次に、このデータベースで(追加、編集など、つまりCRUD操作)DALクラスの構築を開始して、このデータベースを形成します。

私がやりたいことは、Web 管理者がアプリケーションを介して新しいテーブルを追加することを選択できるようにすることです。その後、動的に、アプリケーションはテーブル名と列をパラメーターとして受け取り、新しいクラスを作成し、それらの中で実装する CRUD メソッドを定義します。 SQL CRUD 操作

次に、クラスを動的に作成し、それらの中で変数、プロパティ、およびメソッドを定義して、DAL メソッドを呼び出して使用します..これはすべて、テーブル、列名に基づいています

注 : これはすべて実行時に行われます。

4

4 に答える 4

1

ASP.Net Dynamic Dataを調べることをお勧めします。これは、エンティティなどの CRUD 機能を非常に簡単に提供する RAD ツールです。見てみな。

于 2011-02-27T21:29:19.023 に答える
0

まず、MS Access を作成しようとする人は、MS Access を再作成する運命にあります。ひどく。

ASP.NET Dynamic Data (推奨) またはASP.NET MVC Scaffoldingを使用することをお勧めします。しかし、実際にまともなアプリケーションを作成するランタイム生成のプレイフォームは、本当に夢物語です。複雑なことを行うには、開発者の時間が必要です。またはまあ。

于 2011-02-28T04:46:08.207 に答える
0

しばらく前に、SOについても同様の質問をしました。1つだけ返事が来ました。

今日、私は MSDN に関する情報を掘り下げていましたが、推測したとおり、MS CRM エンティティ モデルはメタデータに基づいて機能します。基本的に、CRM 開発者が取り組んでいるものはすべて単なるメタデータであり、それ自体は実際のオブジェクトではありません。以下はMSDNのリンクです。

MS CRM メタデータを拡張します。ここにMS CRM 4.0 SDKがあります。

これで始められることを願っています。

更新: 最近Visual Studio LightSwitchにヒットしました。これが私たちが作りたかったものだと思います。DB からテーブル情報を取得し、すべての CRUD 画面を作成する UI。VS LightSwitch は Beta1 であり、非常に多くの可能性を秘めています。良い出発点になるはずです。

于 2011-03-01T18:45:10.710 に答える
-1

あなたが求めているのは無意味です。なんで?BLLとn層の背後にある考え方は、データモデルをよく知っており、データモデルを表す静的クラスモデルを作成できるということです。

データモデルが動的で変化している場合、静的BLL(BLLとは何か)を作成することはできません。実行時にクエリを動的に構築するために必要なこと。これは、従来の方法のいずれかが処理するように設計されているものではないため、すべてを自分で行う必要があります。

実行時にクラスを動的に生成することは可能ですが、BLLを動的データベースに適応させることができたとしても、BLLを呼び出すコードは何も知らないため、これはおそらくあなたが採用したいアプローチではありません。したがって、呼び出されることはありません。

これは、一晩で解決する問題でも、既存の解決策をコピーすることで解決する問題でもありません。ORMや自動化に依存するのではなく、低レベルのADO呼び出しを使用して、最初から設計する必要があります。

于 2011-02-28T05:11:16.713 に答える