1

これまでの .Net コーディングの冒険では、情報をファイルに保存する必要がありました。そこで、XmlSerializer と DataContractSerializer を使用して、属性付きクラスを XML ファイルにシリアル化しました。ただし、次のプロジェクトでは、SQL サーバー データベースから情報を保存および取得する必要があります。これを行うためのオプションが何であるか疑問に思っています。

私が作成したものではないアプリの現在のバージョンでは、多くのハードコードされた SQL コマンドが使用されています。しかし今は、データベースやオブジェクトとの間で個々のフィールドを読み書きする必要があることを避けようとしています。私は特に、自分のコードで多くのハードコードされた SQL を避けたいと思っています。クラスの属性やパブリック プロパティに基づいて、シリアライザー クラスが XML ファイルの読み取りと書き込みの方法を理解する方法が気に入っています。XMLではなくデータベースに似たものはありますか?

4

6 に答える 6

2

オブジェクト リレーショナル マッピング

そこにはたくさんの製品がありますが、最も悪名高いのはNHibernateです。 Microsoft が提供するLinq 2 SqlEntity Frameworkで競合する製品がいくつかあります (後者を使用することになっていますが、誰もが最初の製品を使用する方が簡単です)。 .

http://ormbattle.net/で ORM 製品の優れた (偏りがあるとは思いますが) 比較を見ることができます。

于 2010-05-13T19:02:08.190 に答える
2

Object Relational Mappersについて言及していると思います。これらは、単純なオブジェクト CRUD 配管を含む豊富な機能を提供します。

チェックアウト:

他にもたくさんありますが、それでうまくいきます。

于 2010-05-13T19:03:37.130 に答える
0

データベースを扱う場合、一般的なオブジェクト タイプはありません。テーブルとフィールドのみ。これらの組み合わせは、しかし、オブジェクトを作ることができます. クライアント コードでハード コーディングされた SQL に関心がある場合は、ストアド プロシージャを使用することをお勧めします。

また、主にデータベース内の実際のフィールド タイプについて言及しています。ORM は別の話です。INSERT、SELECT などに役立つオブジェクト リレーショナル マッパーが必要な場合は、nHibernate を調べてください。

于 2010-05-13T18:58:57.637 に答える
0

プロジェクトによっては、NHibernateのような ORMが探しているものかもしれません。データベース情報をクラスにマップすると、ORM が手動で SQL を記述せずに挿入、削除、および選択を処理します。これにより、大量の書き換えを行うことなく、別のデータベース システムに移行することもできます。

パフォーマンスやデータが実際にどのように構造化されているかなど、他のことがここで関係するため、プロジェクトに依存すると言います。

于 2010-05-13T19:01:00.960 に答える
0

私は、ORM を使用するという以前の提案に同意します (そしてそれを好みます)。ここにオプションの完全なメニューがあることを確認するためだけに、別のオプションがあります. XML 表現、(デ) シリアル化などに慣れている場合は、SQLXML の使用も検討できます。そうは言っても、適切なデータベース設計を避けるためにこれを使用するべきではありませんが、これは一部のソリューションでは完全に合理的です。

于 2010-05-13T19:11:26.153 に答える
0

Linq to SQL を読むべきだと思います。これにより、データベース テーブルとそれらの関係を表現するクラスを "主に" 操作できるようになります。

DataContext context = new DataContext();
var obj = context.Table1.Single(row => row.Id == 1234);
obj.Name = "Test1234";
context.SubmitChanges();

これは、Linq to SQL について学び始めるのに適した場所になる可能性があります。これがあなたが探しているものであることを願っています。

于 2010-05-13T19:08:53.860 に答える