2012-05-03 6 views
1

での作業:私はasp.netアプリケーションに取り組んでいますし、私は次のシナリオを持って自動生成されたポコエンティティ

私は私のテーブルとEDMXのfilwを持っていると私は、「追加コード生成項目から私のポコエンティティを作成"、私の質問は、カスタムツールを実行したり、私のedmxファイルを更新したりするときにポコエンティティに追加した場合、エンティティが再生成されているので、私のカスタムメソッド(例えばcheckIfEmailExists、AddUserなど)を追加する必要があります。すべての私の方法を失う?

答えて

3

エンティティは、ビジネスロジックまたはセキュリティとは別にする必要があります。セキュリティのように、エンティティに依存するメソッドを実装するクラスを作成する必要がありますが、エンティティに直接追加しないでください。

作成するすべてのクラスは、単一責任の原則に従うようにしてください。エンティティクラスにはおそらくpublicプロパティのみが含まれていますが、まずAddUserかCheckIfEmailExistsが本当にそれらのクラスに属しているかどうかを判断する必要があります。彼らがそこに属していなければ、彼らを彼らのクラスに分けた。それらのものをあなたのエンティティに入れるという強力な議論があるなら、それらのメソッドをそれらのエンティティに入れます。

さらに、AddUserは何をしますか?クラス/テーブルUsersと別のクラス/テーブルUserDetailsを持っている場合、前のクラス/テーブルの一部としてAddUserを持っていますか?

+0

I私は –

+0

上でこれらの機能を行うしかし、なぜあなたは、エンティティの一部としてこれらのメソッドを入れなかったテーブルと呼ばれるユーザーがいますか?それは必要でしたか?あなたは望みの結果を得る別の方法を検討しましたか? –

+0

私はすべての私のポコのエンティティのbllクラスを作成し、これらのクラスのメソッドを置くべきだと思いますか? –

2

生成されたクラスはpartialある - それは、クラスの一部が含まれています。別のファイルを別の場所に作成し、名前付け(名前空間とクラス名、partialキーワード)に従うことができます。新しい自動生成が実行されると、このファイルは書き換えられません。ここにカスタムコードを入れます。ファイルはコンパイラによって "マージ"されます。

関連する問題