0

linqでいくつかのデータを選択しようとしましたが、システムにこのエラーが表示されます

タイプ'System.DateTime'の式は、メソッド'Boolean Equals(System.Object)'のタイプ'System.Object'のパラメーターには使用できません。

私のWorkingResults.EffectiveDateはDateTimeですか?しかし、私の日付変数はDateTimeです。これを修正するためにコードを変更するにはどうすればよいですか?

  WorkingResult workingResultObj = (from workingResult in this.DataWorkspace.ApplicationData.WorkingResults
where workingResult.EmployeeCode == employeeCode  && workingResult.EffectiveDate.Equals(date)                                         
select workingResult).FirstOrDefault();

助けてくれてありがとう。

4

3 に答える 3

3

さて、いくつかの回避策があります。まず、それをDateTimeにすることができます。

workingResult.EffectiveDate.GetValueOrDefault(DateTime.MinValue).Equals(date)

有効な日付がわかりません。または、Object.Equalsを使用できます。

Object.Equals(workingResult.EffectiveDate, date)

意図した結果が得られない場合があります。発効日に値があることが常にわかっている場合は、@spajceアプローチを使用できます。

于 2013-02-14T03:51:03.783 に答える
2

.HasValueを使用できます。

...
where workingResult.EmployeeCode == employeeCode && 
(workingResult.EffectiveDate.HasValue && 
 workingResult.EffectiveDate.Value.Date == date.Date).FirstOrDefault();
于 2013-02-14T03:49:45.830 に答える
0
 WorkingResult workingResultObj = 
  (
      from workingResult 
      in this.DataWorkspace.ApplicationData.WorkingResults
      where 
            workingResult.EffectiveDate.HasValue
            && workingResult.EmployeeCode == employeeCode  
            && workingResult.EffectiveDate.Value == date                                         
      select workingResult
  ).FirstOrDefault();
于 2013-02-14T03:54:29.067 に答える