日期时间或int到iquerable中的字符串
本文关键字:字符串 iquerable 时间 int 日期 | 更新日期: 2023-09-27 18:01:50
如何将DateTime或int转换为IQueryable中的字符串?我需要做这样的事情,但没有ToString()
,这会抛出System.NotSupportedException
异常:
IQueryable filteredEntities = myIQueryableCollection
.Where(o => o.SomeDateTime.ToString().Contains(searchParameter)
|| o.SomeInt.ToString().Contains(searchParameter));
对于双精度和十进制,我使用SqlFunctions.StringConvert
函数,但是对于int或DateTime没有重载。
请注意,这里我绝对需要延迟执行。呼叫ToList()
不是我正在使用的数据量的选项。
使用SqlFunctions。DateName :
data.Where(o => SqlFunctions.DateName("year", o.SomeDateTime).Contains(searchParameter) ||
SqlFunctions.DateName("month", o.SomeDateTime).Contains(searchParameter) ||
SqlFunctions.DateName("weekday", o.SomeDateTime).Contains(searchParameter))
可能需要搜索除'年'/'月'/'工作日'以外的其他数据,这取决于searchParameter
的样子。
查看MSDN。
MSDN似乎建议使用以下扩展方法:
Enumerable.Cast<TResult>
http://msdn.microsoft.com/en-us/library/bb341406 (v = vs.100) . aspx