2016-08-25 10 views
0

私はEntityを使用して顧客のSQLテーブルからデータを取得しています。これを日付に基づいてフィルタリングしたいと思います。顧客は各行の該当する月をYYYYMM形式の6桁の文字列として保存しました。エンティティ1月にすべてのDateTimesを変換する

CONVERT(datetime2, MON.Month + '01') AS CoveredMonth 

をその後の内側:(私はDATETIME2に列タイプを変更することはできませんので)これを解決する私の試みは、月を表すDATETIME2列を作成するには、次のないSQLビューを作成することでした。 NET、私は2016年1月1日と2017年1月1日を表す2つのDateTimeオブジェクト、yearStartとyearEnd、および私が探している特定の従業員を持っています。

IList<MonthlyRecord> monthlyRecords = m_LTContext.MonthlyRecords 
    .Where(r => r.EmployeeID == employee.ID && r.CoveredMonth >= yearStart && r.CoveredMonth < yearEnd) 
    .ToList<MonthlyRecord>(); 

私は、私は、レコードの期待を参照してくださいmonthlyRecordsに返されるかどうか確認するためにブレークポイントを配置する場合:私はこのコラムでフィルタしようとするには、次のコードを持っています。ただし、各レコードはCoveredMonthが2016年1月1日に設定されています。SQLで同じクエリを実行すると、同じ個のレコードが再びのレコードになりますが、適切な日付:Jan 1 '16、Feb 1 '16など

ビュー上で非標準のマッピングプロパティがEntityに何らかの問題がありますか?私の心にはいくつかのハッキングがありますが、私は本当にこれを「適切に」解決したいと思います。

答えて

0

このビューでは、Viewは、MonthlyRecordIDではなく、主キーとしてEmployeeIDを使用していました。

関連する問題