Значение типа «System.Linq.IQueryable (Of Date?)» Не может быть преобразовано в «Date» - PullRequest
1 голос
/ 06 декабря 2011

Я пытаюсь получить значение даты и времени, но здесь проблема с обнуляемым типом даты. Как это исправить?

Public Function GetDate(ByVal kodg As Integer) As DateTime
    Dim g = From dt In db.xDates _
            Join f In db.xGrafiks On dt.КодД Equals f.DateKod _
            Where f.Kod = kodg
            Select New Date?(dt.Дата) ???
    Return g ???
End Function

1 Ответ

4 голосов
/ 06 декабря 2011

g будет IQueryable(Date?), который является коллекцией, поэтому сначала нужно проверить, есть ли значение. Вы можете сделать это с помощью FirstOrDefault() (если результатов может быть несколько или нет) или SingleOrDefault (если результатов не должно быть несколько).

Тогда вы получите один Date? обратно. Затем вы можете использовать свойство HasValue, чтобы проверить, имеет ли Date? значение, если это правда, просто верните его. Если нет, вы должны вернуть еще один Date из вашей функции (возможно DateTime.MinValue?).

Или вы можете изменить возвращаемое значение вашей функции на Date?, а просто вернуть в запросе дату, равную нулю.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...