2009-07-24 15 views
5

This questionは、サーバー側で生成されたGUIDをエンティティフレームワークで使用できないことを強調しています。しかし、データベースAPIのDALレベルで処理されるGUIDの生成が必要です(つまり、エンティティのコンストラクタが呼び出されたときに、そのエンティティのIDを新しいGUIDに初期化する必要があります)。私の計画は、エンティティの部分クラスであるコードファイルの束を生成するための小さなツールを書くことです。私はそれを行う方法があります、質問は次のとおりです。私はこのようにして私の心の外ですか?これは私がそれをやっているべきである方法ですか?GUIDおよびEntity Frameworkの使用

私の問題は、edmxファイルが更新されているときに、コードファイルの束を編集したくないということです。私はただ必要なことをするツールを実行したいだけです。

私の頭はまっすぐですか?

答えて

6

Entity Frameworkがデフォルトで生成する部分クラスを見ると、デフォルトコンストラクタはありません。

だから、別の部分クラスでこれを行うとうまく動作します:

public partial class Customer{ 
    public Customer(){ 
     _ID = Guid.NewGuid(); 
    } 
} 

をあなたが計画しているような何かをしない理由は、おそらくありません。

これを行うには、T4テンプレートを調べてください。これは、EF 4.0(つまり.NET 4.0のEF)で生成されたコードをカスタマイズする方法です。 4.0では、経験はあまり見かけませんが、.NET 3.5 SP1でうまく動作する部分クラスを作成するためにT4に基づいて簡単に何かを組み込むことができます。

希望これは

アレックス

+0

非常に便利な提案をすることができます。私はおそらくこのプロジェクトではT4テンプレートを使用しませんが、他のプロジェクトを知るのにとても便利です。 –

+0

これは、サーバサイドのnewid()のデフォルト値がそうでなかったとき私のために働いていました。ありがとう! – el2iot2

関連する問題