0

VBを使用して結合クエリLinqを実行しようとしています。最大EnterTimeを返したいのですが、「

System.Linq.Iqueryable(Of Date)をSystem.Nullable(Of Date)に変換できません

どうすればこれを解決できますか?

     Dim results =
            From b In context.H_Beneficiary
            Join e In context.Employees On b.EmployeeId Equals (e.EmployeeId)
            Join c In context.Companies On e.CompanyId Equals (c.CompanyId) _
            Where e.IntegrationId.Equals(c.CompanyId) _
            And (b.EndDate Is Nothing Or b.EndDate >= DateTime.Today)
            Select b.EnterTime
4

1 に答える 1

1

Linqクエリは、単一の日付ではなく、一連の日付を返します。そのため、割り当ては機能しません。

クエリから最大日付を割り当てるには、最初の結果がある場合はそれを選択するのではなく、日付でクエリを並べ替えることができます。

Dim results =
        From b In context.H_Beneficiary
        Join e In context.Employees On b.EmployeeId Equals (e.EmployeeId)
        Join c In context.Companies On e.CompanyId Equals (c.CompanyId) _
        Where e.CompanyIntegrationId.Equals(c.CompanyId) _
        And (b.EndDate Is Nothing Or b.EndDate >= DateTime.Today)
        Order By b.EnterTime Descending
        Select b.EnterTime

Dim latestDate As Nullable(Of DateTime) = results.FirstOrDefault()
于 2012-09-14T15:48:14.843 に答える