8

数年ぶりに .NET 開発に戻ってきましたが、特に LINQ を使用すると、データへのアクセス方法が変わり、はるかに簡単になったようです。たとえば、ASP.NET MVC Web サイトでは、次のことができます。

  • アイテムを追加
  • LINQ-to-SQL クラスを追加する
  • データベース テーブルを LINQ-to-SQL オブジェクト リレーショナル デザイナーにドラッグし、[保存] をクリックします。
  • LINQワンライナーを介してデータにアクセスして操作します(ここで学びました:http://www.asp.net/learn/mvc/tutorial-11-cs.aspx

これは素晴らしいように見えますが、実際にはどのように機能しますか?

  • 上記の LINQ-to-SQL シナリオは実際のプロジェクトで使用するものですか、それとも簡単なスキャフォールディング テクノロジですか。つまり、データベースでフィールドとテーブルの追加、削除を開始するとどうなるか、LINQ-to-SQL クラスはどのように機能しますか同期を維持しますか?

そして、この分野のすべての新しいテクノロジーをどのように理解すればよいでしょうか。

  • サブソニックはどこに収まりますか?
  • Astoria (ADO.NET Data Services) はどこに適合しますか?
  • NHibernate はどこに適合しますか?
  • LINQ-to-SQL で他のデータベースを使用するにはどうすればよいですか (オブジェクト リレーショナル デザイナーで SQLite テーブルをドラッグしようとしたところ、「サポートされていません」というエラーが表示されました)、または LINQ-to-SQL は SQL Server 専用ですか?
  • LINQ-to-XML は LINQ-to-SQL と同じように機能しますか? たとえば、XML ファイルをデザイナーにドラッグして LINQ でアクセスできますか? それとも、独自のコードを記述する必要がありますか?
  • LINQ-to-Entities は LINQ-to-SQL のように機能しますか。つまり、自動的に生成されたクラスですが、より多くのオプションがありますか?

  • ADO.NET とその DataTables および DataSets は、LINQ がある今では古いテクノロジですか? LINQ-to-ADO.NET は理にかなっていますか?

  • Azure は、もはや RDBMS を実際に持っていない場所のどこに適合しますか?

  • UI がただ RESTful に WCF と話している、または Web サービスと話しているだけの場合、ESB はどこに収まるのでしょうか?

非常に多くのオプションが用意されていますが、プロジェクトにこれらのテクノロジのいずれかを選択できるとしたら、どれを選択しますか?またその理由は何ですか?

4

4 に答える 4

4

最初の応答 (主に LINQ に関するもの):

  • LINQ to SQL は、実際のプロジェクトで使用できるものです。私はやった。コード全体にワンライナーとして散在するのではなく、デザイン サーフェイスを右クリックして [コードの表示] を選択すると生成される部分クラスにすべてのデータ アクセス コードを配置する傾向がありました。
  • LINQ to SQL を使用してデータベースを変更する場合、テーブルを削除して再度追加する必要があります。これは少し制限があります。Entity Framework を使用すると、「データベースからモデルを更新」してこれらの列を自動で追加/削除できます。
  • おそらく LINQ to MSSQL Server と呼ばれるべきでした - SQL Server に直接結び付けられています。他のデータ ソースで同様のツールを使用したい場合は、Entity Framework を見ることができますが、これには現在他の制限があります。
  • ADO.NET Data Services は、ADO.NET オブジェクトへの REST ベースのインターフェイスを提供します。そのため、単純な Web サービスを呼び出してデータを取得できます。これらのサービスを記述する必要はありません。
  • いいえ、LINQ to XML のデザイン サーフェスはありません。誰かが XSD で何かできると思いますが、それは興味深いことです ;)
  • Azure は「クラウド内のオペレーティング システム」と考えることができます。Azure にはストレージ用のデータベースがありますが、あなたが述べているように、リレーショナルではなく、結合もありませんが、それでも結果を照会することになります。

あなたの最後の質問に答えるために、私はNHibernateや他の人について十分に学んでいませんが、基本的なデータベースアクセスにはLINQ to SQLを喜んで使用しますが、より複雑なものについてはLINQ to Entitiesを調べ始めました他のものではなく - 主に私がきれいな写真が好きだからです。

于 2009-01-23T10:35:13.610 に答える
1

SQLiteについて: dbLinq を使用して、SQLite データベースへの LINQ クエリを作成することに成功しました。まだ初期段階にあるため、生成されたクラスのいくつかを修正する必要があると予想されますが、私のニーズには合っていました。LinqToSql が行うすべてのことの 85% を推測します。また、プロジェクトには、失敗していることを知っていることを示す単体テストがたくさんあります。

dbLinq は、他の多くのデータベース (MySQL、PostgreSQL、Firebird) をサポートしています。SQLite 以外には使用していません。

于 2009-05-07T20:25:33.377 に答える
1

私たちが開始している新しいプロジェクトについて同じ質問に答えなければなりませんでした.LLBLGenに決定した代替案を比較した後、次の理由があります。

  • Entity Frameworkよりも成熟しています
  • Linq クエリをサポートしています
  • 複数の専任開発者によって積極的に開発されています
  • 安価です
  • サポートは素晴らしいです

ps。私はllblgenおよび/またはソリューション設計に所属していないことをおそらく言及する必要があります.

于 2009-01-23T10:25:13.740 に答える