私はmvc 3プロジェクトのためにsqlにlinqを使用しています。ドメインモーダルクラスファイルを生成する方法はいくつかあります。LINQ to SQLのクラスを生成する方法は?
- sqlmetal
- オブジェクトリレーショナルデザイナー
- 手コード
私は常に手コード、それらのモデルクラスファイル。なぜなら、sqlmetalやデザイナーによって生成されたファイルは乱雑ですからです。あなたの意見は何ですか?それを行うための最良の方法は何ですか?
EDIT:
私はMVC 3ではなく2を使用していますたぶん私は間違っているが、これは私が検証する方法です。とにかくこれらのクラスファイルをすべて書き終えるつもりです、それで、それらを生成するためのツールを使用するポイントは何ですか?
public class User
{
[Required]
public string Password { get; set; }
[Required, Compare("Password")]
public string ComparePassword { get; set; }
}
ツール(L2S、T4など)を使用するポイントは、何かを手書きで書くときはいつでも間違いを起こしやすいということです。加えて、それはすべてのものを結ぶ心の衰えの退屈からあなたを救う。記述する* EXACT *構造を生成するT4テンプレートがありますが、これについて考える必要はありません。オブジェクトモデルが変更されるたびに再生成するだけです。これにより、実際のアプリケーションロジックに焦点を当てることができます。 – GalacticCowboy
私はまた、自分自身を繰り返すこと(DRYの原則に違反している)は、最高の時間を浪費し、最悪のエラーを起こしやすいと付け加えます。一例として、文字列の長さを一度指定するだけでよい。それをあなたのテーブルの中でやり直し、あなたのオブジェクトでやり直すなら、あなたの努力を倍増させ、同期が外れる危険性があります。これを回避することは、どのように行うか、どのデータアクセス技術を使用するかにかかわらず、コードジェネレーションの大きな利点です。 Entity Frameworkは、実際にはVSからT4テンプレートを提供することで、これを採用しています。クロスDBクエリとより良いクエリロギングをサポートしていれば、おそらく切り替えるでしょう。 – mattmc3