Sof*_*tor 4 c# entity-framework iqueryable entity-framework-6
如何在IQueryable中将DateTime或int转换为字符串?我需要做这样的事情,但没有ToString(),这会抛出System.NotSupportedException异常:
IQueryable filteredEntities = myIQueryableCollection
.Where(o => o.SomeDateTime.ToString().Contains(searchParameter)
|| o.SomeInt.ToString().Contains(searchParameter));
Run Code Online (Sandbox Code Playgroud)
对于double和decimal,我使用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))
Run Code Online (Sandbox Code Playgroud)
根据searchParameter看起来的样子,可能需要搜索"年"/"月"/"工作日"以外的其他数据.
请参阅MSDN.
| 归档时间: |
|
| 查看次数: |
1282 次 |
| 最近记录: |