Linq MVC字符串和时间与<;=&燃气轮机=
我的数据库中有字符串格式的“timein”和“timeout”,我需要帮助,因为我不知道逻辑 大概是这样的:Linq MVC字符串和时间与<;=&燃气轮机=,linq,Linq,我的数据库中有字符串格式的“timein”和“timeout”,我需要帮助,因为我不知道逻辑 大概是这样的: Entity.time a; using (var b = new Entity.DatabaseEntities()) { a = b.times.Where(v => Convert.ToDateTime(v.timein) <= Convert.ToDateTime(DateTime.Now.To
Entity.time a;
using (var b = new Entity.DatabaseEntities())
{
a = b.times.Where(v => Convert.ToDateTime(v.timein) <= Convert.ToDateTime(DateTime.Now.ToString("hh:mm")) && Convert.ToDateTime(v.timeout) >= Convert.ToDateTime(DateTime.Now.ToString("hh:mm"))).FirstOrDefault();
}
Entity.time a;
使用(var b=new Entity.DatabaseEntities())
{
a=b.times.Where(v=>Convert.ToDateTime(v.timein)=Convert.ToDateTime(DateTime.Now.ToString(“hh:mm”)).FirstOrDefault();
}
timein
和timeout
更适合于数据库类型Time
和.net类型TimeSpan
。假设字符串的格式为HH:mm
,您应该进行字符串比较,并且不转换查询中的任何内容,这样查询是可搜索的。如果它们是另一种格式,则必须使用一些示例数据更新问题
查询无法工作的原因是表达式需要能够转换为SQL语句,并且并非所有内容(实际上大多数类型/方法)都是不可翻译的
Entity.time a;
using (var b = new Entity.DatabaseEntities())
{
var timeOfDay = DateTime.Now.ToString("HH:mm");
a = b.times.FirstOrDefault(v =>
string.Compare(v.timein, timeOfDay) >= 0
&& string.Compare(v.timeout, timeOfDay) <= 0);
}
Entity.time a;
使用(var b=new Entity.DatabaseEntities())
{
var timeOfDay=DateTime.Now.ToString(“HH:mm”);
a=b.times.FirstOrDefault(v=>
string.Compare(v.timein,timeOfDay)>=0
&&比较(v.timeout,timeOfDay)非常感谢@Igor先生帮助我理解这个问题