1

もちろん、テーブルに基づいて自動生成されたクラスを含む.dbmlファイルがあります。

ただし、自分のクラスに拡張したいと思います。通常、各テーブルが、関連するすべてのdaoクラスとサービスクラスを含む独自のフォルダーに独自の名前空間を取得するように設計します。したがって、たとえば「customers」のみに関係するページを扱っている場合、customerNSのみを含めることができます。

しかし、LINQを使用すると、これを実行できないようです。プロジェクトからデフォルトの名前空間を削除しようとしました。カスタム名前空間を使用して.dbmlファイルを独自のフォルダーに配置し、「using」ステートメントを追加しようとしましたが、何も機能しません。

また、.dbmlファイルに関連付けられたエンティティ名前空間、コンテキスト名前空間、およびカスタムツール名前空間のプロパティを確認し、これらすべてを名前xに設定し、他のクラスで「xを使用」して部分的なクラスを拡張できるようにしましたが、動作しません。

これは可能ですか、それともすべての拡張部分クラスを.dbmlファイルと同じ名前空間に保持する必要がありますか?

4

2 に答える 2

0

すべてのlinqクラスを1つの名前空間に保持する必要があります。DOクラスを異なる名前空間に配置しようとするのはなぜですか?

于 2010-04-06T22:04:53.067 に答える
0

タイプに関係がない場合、答えは簡単です。複数のdmblファイルを使用します。リレーションが必要で、複数の名前空間を読み上げたい場合。

T4テンプレートファイルを使用してこれを実行できる場合があります。VS2010には、テンプレートを作成するためのテンプレートがあります(ジェネレーターテンプレートなどと呼ばれます)。VS2008の場合、codeplexで見つけることができます

標準テンプレートに加える必要のある変更は、すべてのプロパティが完全修飾名を使用していることを確認する必要があることです(関連するタイプが異なる名前空間にあるため)。また、ほとんどの制御では、生成されたクラスから名前空間情報をスキップできます(したがって、部分クラスで定義できます)。

于 2010-04-06T22:31:51.823 に答える