#f#
#f#
Вопрос:
У меня есть следующая функция в F #, которая возвращает данные из локальной базы данных:
let GetScheduleAsync (tableDate : DateTime) =
async {
let! data = context.GetOfficeScheduleAsync(tableDate) |> Async.AwaitTask
return data |> Seq.map(fun q -> {
Visit.lastName = q.lastname
firstName = q.firstname
birthDate = q.birthdate
appointmentTime = q.appointment_time
tservice = q.service_time
postingTime = q.posting_time
chartNumber = q.chart_number
})
}
|> Async.StartAsTask
Где Visit определяется как:
type Visit = {
lastName : string
firstName : string
birthDate : Nullable<DateTime>
appointmentTime : Nullable<DateTime>
tservice : Nullable<DateTime>
postingTime : Nullable<DateTime>
chartNumber : Nullable<int>
}
Теперь загруженный q.birthdate из базы данных не равен нулю, но в определении посещения он имеет значение null. Следовательно, возникает следующая ошибка:
The expression was expected to have type
'Nullable<DateTime>'
but here has type
'DateTime'
Как мне сохранить определение Visit неизменным без изменения базы данных и исправить ошибку?
TIA
Ответ №1:
Вам нужно явно создать Nullable
значение, подобное этому: Nullable q.birthdate
.
Комментарии:
1. К вашему сведению, это становится неявным в F # 5