linq中判断DateTime类型是否为空
在linq中判断如下代码varquery=(fromninEntityDb.NewswhereString.IsNullOrEmpty(news.id)?true:n.i...
在linq中判断如下代码
var query = (from n in EntityDb.News
where String.IsNullOrEmpty(news.id) ? true : n.id == news.id
where String.IsNullOrEmpty(news.title) ? true : n.title == news.title
where String.IsNullOrEmpty(news.content) ? true : n.content == news.content
where String.IsNullOrEmpty(news.userid) ? true : n.userid == news.userid
where (news.dateTimeNow==null) ? true : n.dateTimeNow == news.dateTimeNow
orderby n.id ascending
select n);
红字的那一段是我写的代码,dateTimeNow 在数据库中是datetime类型的不允许为空!上方的代码是一个查询方法,根据我传递过来的参数进行查询。既然是查询,肯定不是一定要每个参数都有值的。问题就出现在,当news实体传递过来的时候如果dateTimeNow为空的话。查询就会报“SqlDateTime 溢出。必须介于 1/1/1753 12:00:00 AM 和 12/31/9999 11:59:59 PM 之间。
”如何解决。主要就是判断当news.dateTimeNow==null是怎样让他不执行where (news.dateTimeNow==null) ? true : n.dateTimeNow == news.dateTimeNow现在只要执行到这一句就报错!!!问了好几个同事都没有最优的解决方案。希望 各位大大,指教一下。
上述问题现已经解决,现在请教Linq中如何格式化DateTime类型的数据。什么?Convert.ToDateTime(),xxx.ToString()之类的就不用说了。那不中!!!!目前已经有一种比较笨笨的解决方式
query = query.Where(n =>n.dateTimeNow.Year == news.dateTimeNow.Year
&& n.dateTimeNow.Month == news.dateTimeNow.Month
&& n.dateTimeNow.Day == news.dateTimeNow.Day
&& n.dateTimeNow.Hour == news.dateTimeNow.Hour
&& n.dateTimeNow.Minute == news.dateTimeNow.Minute
&& n.dateTimeNow.Second == news.dateTimeNow.Second
想知道有没有更好的解决方案!!!满意++++++++++++++++分 展开
var query = (from n in EntityDb.News
where String.IsNullOrEmpty(news.id) ? true : n.id == news.id
where String.IsNullOrEmpty(news.title) ? true : n.title == news.title
where String.IsNullOrEmpty(news.content) ? true : n.content == news.content
where String.IsNullOrEmpty(news.userid) ? true : n.userid == news.userid
where (news.dateTimeNow==null) ? true : n.dateTimeNow == news.dateTimeNow
orderby n.id ascending
select n);
红字的那一段是我写的代码,dateTimeNow 在数据库中是datetime类型的不允许为空!上方的代码是一个查询方法,根据我传递过来的参数进行查询。既然是查询,肯定不是一定要每个参数都有值的。问题就出现在,当news实体传递过来的时候如果dateTimeNow为空的话。查询就会报“SqlDateTime 溢出。必须介于 1/1/1753 12:00:00 AM 和 12/31/9999 11:59:59 PM 之间。
”如何解决。主要就是判断当news.dateTimeNow==null是怎样让他不执行where (news.dateTimeNow==null) ? true : n.dateTimeNow == news.dateTimeNow现在只要执行到这一句就报错!!!问了好几个同事都没有最优的解决方案。希望 各位大大,指教一下。
上述问题现已经解决,现在请教Linq中如何格式化DateTime类型的数据。什么?Convert.ToDateTime(),xxx.ToString()之类的就不用说了。那不中!!!!目前已经有一种比较笨笨的解决方式
query = query.Where(n =>n.dateTimeNow.Year == news.dateTimeNow.Year
&& n.dateTimeNow.Month == news.dateTimeNow.Month
&& n.dateTimeNow.Day == news.dateTimeNow.Day
&& n.dateTimeNow.Hour == news.dateTimeNow.Hour
&& n.dateTimeNow.Minute == news.dateTimeNow.Minute
&& n.dateTimeNow.Second == news.dateTimeNow.Second
想知道有没有更好的解决方案!!!满意++++++++++++++++分 展开
展开全部
你可以试试使用.net的新特性
在C#声明这个日期字段的时候这样写
DateTime? time;
然后这个字段就可以设置空值
如time =null;
取值和赋值的时候使用的是 time.Value;
在C#声明这个日期字段的时候这样写
DateTime? time;
然后这个字段就可以设置空值
如time =null;
取值和赋值的时候使用的是 time.Value;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用DateTime.MinValue作为未赋值标志
where (news.dateTimeNow==DateTime.MinValue)
where (news.dateTimeNow==DateTime.MinValue)
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
news.dateTimeNow == default(DateTime?)
或者
news.dateTimeNow==DBNull.Value
或者
news.dateTimeNow==DBNull.Value
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询