EF生成クラスで部分クラスを使用する状況でカスタムプロパティを処理する方法を教えてください。カスタムプロパティを使用したEntity Frameworkの部分クラスの使用
ここでセットアップです:
タイムシート表 - これは従業員の時間
を保存する - TimeSheetID(オート、int型、PK)
- ENTRYDATE(日時)
- 時間(int型)
- 社員は( int)
EmployeeHourlyRateテーブル - 従業員の現在の時間単価を格納します。過去のレートもここに保存されます。
- RateID(int型、PK)
- EffectiveDate(int型、PK)
- レート(ダブル)
これはEmployeeHourlyRateへのタイムシートから多くの関係です。 Employee's rateを見つけるために、timeSheetのEntryDateよりも小さいmax effectiveDateを選択します。
私は物事を円滑にするために、TimeSheetという部分クラスを作成し、そのクラスに「レート」という新しいプロパティを追加しました。私がしたいのは、TimeSheetsのコレクションにデータを移入するのと同じクエリから自分自身を移入することです。私はこれを処理するための簡単でクリーンな方法がないことを知っています。 (
var list = from ts in Context.TimeSheets
....
select new TimeSheet() {
TimeSheetID = ts.TimeSheetID,
EntryDate = ts.EntryDate,
Hours = ts.Hours,
EmployeeID = ts.EmployeeID,
Rate = SomeRate //real code has been omitted
};
理論的にはこれは動作するはずですが、何らかの理由でEFは、私は、エンティティ生成されたクラスを再使用しています実行時に文句を言う:
は例えば、私は、このようにそれを行うことができます私は自分のカスタムクラスを作成する場合、それは正常に動作します。しかし、たとえそれが機能したとしても、フィールドのリストを維持して、EFから単一のクラスへのマッピングを維持する必要があります。つまり、TimeSheetテーブルに新しいフィールドを追加するとメンテナンスが問題になります。また、すべての情報を再入力する必要はありません。
私の質問は、どのように人々は一般的にこのシナリオを処理するのですか?私のEntryDateに基づいて正しい有効日を選択することについて、実際に私の結合ルールを効果的に知ることができるデータモデルで何かを行う方法がありますか?
あなたが提供したコードの小さなスニペットでは、少し難解です。多分あなたの部分クラスの残りの部分... –