1

Linq と Visual Web 開発者 2008 Express は初めてです。ここでいくつかの投稿を読み、Scott Guthrie の Linq のセットアップに関する記事を読みましたが、思ったようにクラスが自動生成されないため、少し動けなくなりました。単純なテーブル (主キーを ID とし、自動インクリメントに設定) と他のいくつかの列を含むデータベースをセットアップし、それを DBML Linq デザイナー ペインにドラッグ アンド ドロップしました。テーブルはウィンドウに表示されますが、クラスは自動生成されません。テーブルを右クリックして [コードの表示] を選択すると、DataClasses.csが表示されますが、メソッドやプロパティのない部分クラスしか表示されません。

Linq はこれを行うべきではありませんか、それとも (かなりの確率で) ポイントを完全に見逃してしまったのでしょうか? それとも、この機能は Visual Web Developer 2008 Express では利用できませんか?

4

3 に答える 3

1

いいえ、何も見逃していません。それはまさにそれがどのように機能するかです。ソリューション エクスプローラーに移動し、dbml を展開して、whatever.designer.cs をダブルクリックします。一番下に、あなたが見るでしょう...

[Table(Name="dbo.YourTable")]
public partial class YourTable: INotifyPropertyChanging, INotifyPropertyChanged
{

    private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);

...そしてすべてのプロパティ。

于 2009-10-14T11:04:17.610 に答える
1

他の回答者がすでに指摘しているように、コードを生成して単一の (modelname).designer.cs ファイルにします。

これは、あなたが期待し、望んでいたものかもしれませんし、そうでないかもしれません。

そうでない場合は、有名なコード ジェネレーターである CodeSmith に基づくPLINQOと呼ばれるコード生成テンプレートのセットが少なくとも 1 つあります。これらのテンプレートを使用すると、標準の Linq-to-SQL がサポートしていない多くのことを実行できます。

  • 各テーブルのクラスを、ユーザー定義可能なフォルダー内の独自の単一ファイルに生成します
  • 基礎となるデータベースが変更された場合、DBML モデルと関連する生成されたすべてのクラスを実際に更新します。
  • 特定のタイプのエンティティ (Customer など) を管理する「(entityname)Manager」クラスを追加します。

全体として、Linq から SQL へのコード生成を処理するための非常に優れたソリューションです。優れたもの - おすすめ!

マルク

于 2009-10-14T12:40:46.200 に答える
0

前述のように、LINQ-To-SQL は実際には個々のクラス ファイルを生成しません。テーブルの 1 つのクラスを参照するコードを作成すると、そこにあることがわかります...

于 2009-10-14T11:08:10.587 に答える