Entity Frameworkの計算プロパティ

.net calculated-columns entity-framework

質問

次のプロパティを持つEmployeeオブジェクトがあるとします。

string Name { get; }
float Hours { get; }
float Wage { get; }

Hours * Wageに等しいSalaryというプロパティを追加します。普通のビジネスオブジェクトでは、プロパティでそれをコーディングするだけですが、クラスを再生成する必要がある場合は、これはおそらく消滅します。

データベースエンティティにマッピングする手間をかけずにこれを実装するEF標準の方法はありますか?

受け入れられた回答

確かに。たとえばEmployeeExtension.csなどの別のファイルを作成します。

このファイルに次のコードを配置します。

public partial class Employee
{
    public decimal Salary
    {
        get { return Hours * Wage; }
    }
}

LINQ to SQLクラスとEntity Frameworkクラスは、定義を多くのファイルに分割できるようにpartialキーワードを付けて生成されます。デザイナーは、基本ソースファイルを継続的に自動生成することによって上書きされないメンバをクラスに追加することを望んでいます。 。


人気のある回答

私が正しく覚えていれば、EFによって作成されたクラスは部分的です。そのため、このプロパティを実装するよりも別の部分クラス(もちろん同じ名前空間、同じクラス名)を含む別のファイルを追加することもできます

public single Salary
{
   get
   {
       return this.Hours * this.Wage;
   }
}

トリックをする必要があります(それらのシングルがnull許容できない場合は、気にしないでください!)



Related

ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ