現在のデータレイヤーにLinqとSubsonicのどちらを選択しますか?

StackOverflow https://stackoverflow.com/questions/250369

  •  05-07-2019
  •  | 
  •  

質問

レガシーコードを使用せずに、新しいプロジェクトを開始できます。過去にSubsonicを使用していましたが、とても満足しています。しかし、それはLinqの前でした。

これと同じ問題に直面しなければならない人はいますか(Linq x Subsonic)?

あなたの決断は何でしたか?理由は何ですか?

あらゆる洞察に感謝します。

役に立ちましたか?

解決

SubSonic

長所:

  • 素敵でシンプルな
  • 足場

短所:

  • 多くの場合、メソッドシグネチャは文字列パラメーターを受け入れます(ただし、DAO文字列定数を使用することをお勧めします)。

留意点:

  • コードなしのハンドオフモデル生成には、Webサイトプロジェクトが必要です(BuildProviderが必要です)。

Linq To SQL

長所:

  • IDEの構文糖衣
  • MSサポート
  • IDEで実行されるSQLを表示します
  • 自動生成からオブジェクトプロパティまでの明示的な定義まで、モデル内でさまざまなレベルの操作を許可します。

短所:

  • 複雑。 DataContextのような新しい概念を効果的に学習する必要があります。

留意点:

ADO.NET Entity Framework およびこちら

他のヒント

LINQで気に入っている点の1つは、SubSonicが適切に処理するとは思わないが、自動的に結合を処理することです。

FROM a in db.Orders
where a.Total > 100
SELECT new {a.Item.Desc, a.Customer.Name};

thisLのようなSQLを自動的に生成します

select i.DESC, c.NAME 
from  ORDERS o  
inner join ITEMS on o.ItemID = i.ItemID 
inner join CUSTOMERS c on o.CustomerID = c.CUSTOMERID 
where o.TOTAL > 100

NHibernateはどうですか?それは本当に新しいプロジェクトの見通し外ですか?それでも、Javaから来た人は使い慣れていると感じるでしょう。また、.NET 2.0とMonoでも使用できます。

Linqを使用したのは、フレームワークに組み込まれているためです。 Microsoftによってサポートされないだろうと言っている人のために...廃止されるのはLinqToSqlです。計画の1つは、それをEntity Frameworkに吸収することだと思います。

現在、Entity Frameworkを使用しています。また、linqを使用します。基本的には、linqToSqlとまったく同じであり、使用する場合は柔軟性とパワーが向上します。

サードパーティのフレームワークとオームは、最終的には消滅するため、避ける傾向があります。彼らの人生は、どれだけ多くの人々がそれに興味を持ち、それを利用しているからだからです。彼らの人生はまた、その主な著者/貢献者に大きく依存しています。

私の経験は、SubSonicを中心にしたものです。展開は非常に簡単で、DALは30分以内に完了します。これは実用性のために設計されているため、これはスイスアーミーナイフであることに留意してください。基本的に、テーブルごとに生成されたクラスと、コレクションの遅延読み込みを実行する機能を取得します。フレームワーク経由でストアドプロシージャを実行することもできます。そのため、複雑なデータ構造がある場合は、データベースからそれらをフェッチし、手作業で作成したクラスを更新できます。

5つの主要なプロジェクトでこれを使用しましたが、どれだけ早く依存していたかに感銘を受けました。

同じ状況でした。 LinQはより「視覚的」であり、vstudio内であらゆることを行います。ロブでさえ、subsonicにはそれに匹敵するものがいくつかあると認めています。

IEnumerable、LINQDatasource(自動ページングを使用)、およびビジュアルモデリングにより、SubsonicではなくLinqを選択するようになりました。

linq to sqlの最大のリスクは、Microsoftが飽きて放棄することです。これは既に発生しており、エンティティフレームワークのみが更新されるという多くの憶測があります。 Subsonicはこれに苦しむことはなく、さらに悪いことに、編集するソースコードがある場合もあります。

MSはLINQ to SQ Lの開発を停止しているようです。 SubSonicsの最新バージョンは、以前のバージョンよりもクエリの作成が簡単で読みやすくなります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top