2011-07-15 9 views
0

エンティティクラスを作成したデータベースからエンティティモデルを生成しました。エンティティモデル:エンティティモデルの生成されたエンティティクラスを別のアセンブリに移動する方法

1)クラスごとに別々のファイルを作成する方法はありますか? 2)これらのクラスを別のアセンブリに移動できますか?たとえば、私のソリューションでこれらのクラスを別のプロジェクトに移動するにはどうすればよいですか?

エンティティモデルをクラスから分離し、プレゼンテーションレイヤでクラスを使用したいと考えています。

答えて

1

もちろん、別のプロジェクトでedmxを作成することはできますが、クラスを生成されたデフォルトファイル以外に分割することはできません。生成されたクラスを編集しようとするべきではありません。更新されたときに上書きされます。

あなたは、しかし、あなたはクラスを拡張して、独自のクラスで各エンティティを配置することができ、初期化/検証機能などを追加できるようにするために、エンティティオブジェクトのそれぞれと同じ名前空間とクラスの宣言とpublic partial classを作成することができます拡張用ファイル。

更新日:

すべての関連部分のクラスが同じアセンブリ内にあり、<EntityModel>.Designer.csで元のエンティティpartial classと同じ名前空間とクラス宣言を使用する必要がなければなりません。コードの例は下記を参照してください。

namespace YourEntityNamespace 
{ 
    public partial class YourEntity : EntityObject 
    { 
     // Add methods and properties to extend the entity class 
    } 
} 
+0

これらの部分クラスを生成する方法を教えてください。サンプル構文? これらのクラスは別々のアセンブリに配置できますか? – Riz

+0

@eFriend、サンプルの部分クラスを表示するように更新されました。 –

1
  1. いいえ(デフォルト.edmxジェネレータ内)VSのカスタムツールは、タイプのIVsSingleFileGeneratorであり、唯一つのファイルを生成することができるので。
  2. はい、オブジェクト層のコード生成をカスタマイズする必要があります。 hereを読んでください。プロジェクト間でモデルと生成されたクラスを分離する方法を示すlinkがあります。

@Chris、部分クラスはアセンブリ間で分割できません。ここには多くの質問/回答があります。

+0

が私の投稿を更新しました。 http://msdn.microsoft.com/en-us/library/wa80x488%28v=vs.80%29.aspxへのクイックグーグルは、この制限が真であることを示しました。 –

+0

私は部分的に間違っていました。生成されたクラスは別のアセンブリに移動することができます。投稿を更新しました。 – Vertigo

関連する問題