大佬教程收集整理的这篇文章主要介绍了无法翻译具有可为空值的 Linq 语句,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试查询 SQLite 数据库。我有 2 个表 Doctor
和 Appointment
。 Appointment
表有 2 列可以为空,Date
(类型 datetiR_733_11845@e
)和 Durata
(类型 TimeSpan
)表示约会的持续时间。
var date = datetiR_733_11845@e.Parse(request.DatE);
var filteredDoctors = await _co@R_618_10443@t.Doctors
.Where(d => d.Specializare == request.Speciality)
.Include(d => d.Appointments)
.Where(x => x.Appointments.Any(a => (a.Date != null && a.Date.Value.Date == date.DatE) &&
(a.Date != null && date >= a.Date.value) &&
((a.Date != null && a.Durata != null) && date <= System.Data.Entity.DbFunctions.Addminutes(a.Date.Value,(int)a.Durata.Value.@R_293_10586@lminutes))))
.ToListAsync(cancellationToken);
此查询无需最后一个“&&”
&& date <= System.Data.Entity.DbFunctions.Addminutes(a.Date.Value,(int)a.Durata.Value.@R_293_10586@lminutes)
表达式 a.Date.Value.Add(a.Durata.value)
不起作用。我尝试了在 stackoverflow 上找到的大多数解决方案,这是我来到的最后一个版本。是否还有其他方法可以使此查询正常工作?
为了简化查询,我想选择在指定的date
处不忙的所有医生
更新:
错误似乎出现在 System.Data.Entity.DbFunctions.Addminutes()
方法
更新 2:
更新查询以包含 System.Data.Entity.DbFunctions.Diffminutes()
var filteredDoctors = await _co@R_618_10443@t.Doctors
.Where(d => d.Specializare == request.Speciality)
.Include(d => d.Appointments)
.Where(x => !x.Appointments.Any(a => (a.Date != null && a.Date.Value.Date == date.DatE) &&
(a.Date != null && date >= a.Date.value) &&
(a.Date != null && a.Durata != null) &&
date <= System.Data.Entity.DbFunctions.Addminutes(
a.Date.Value,System.Data.Entity.DbFunctions.Diffminutes(TimeSpan.Zero,a.Durata.value))))
.ToListAsync();
好的,基于 Durata 是约会期间的时间跨度,以下应该有效:
date <= DbFunctions.Addminutes(a.Date.Value,DbFunctions.Diffminutes(TimeSpan.Zero,a.Durata.value))
以上是大佬教程为你收集整理的无法翻译具有可为空值的 Linq 语句全部内容,希望文章能够帮你解决无法翻译具有可为空值的 Linq 语句所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。