我有一个
Linq结果,我需要从DateTime中选择Date.
我的查询是这样的:
我的查询是这样的:
var UserTemplates = (from xx in VDC.SURVEY_TEMPLATE where xx.USER_ID == userid && xx.IS_ACTIVE == 1 select new { xx.TEMPLATE_ID,xx.TEMPLATE_NAME,//CREATED_DATE = xx.CREATED_DATE.Value.Date //CREATED_DATE = EntityFunctions.TruncateTime(xx.CREATED_DATE) xx.CREATED_DATE }).ToList();
那可能吗?
任何帮助将不胜感激.
CREATED_DATE - `datetime` datatype
实际上,我将它绑定到Control作为DataSource,控件显示Date和Time.But我想只显示日期.
当我尝试使用CREATED_DATE = xx.CREATED_DATE.Value.Date时,它会给出如下错误:
The specified type member ‘Date’ is not supported in LINQ to Entities.
Only initializers,entity members,and entity navigation properties
are supported.
解决方法
如果它是出于演示目的,那么您可以使用DataFormatString属性.例如,如果要将数据源绑定到GridView,则可以执行以下操作:
<asp:BoundField DataField="CREATED_DATE" ... DataFormatString="{0:d}" ../>
否则,您可以使用EntityFunctions.TruncateTime()返回没有时间部分的输入日期.
EntityFunctions.TruncateTime(xx.CREATED_DATE)
你的查询就像;
var UserTemplates = (from xx in VDC.SURVEY_TEMPLATE where xx.USER_ID == userid && xx.IS_ACTIVE == 1 select new { xx.TEMPLATE_ID,EntityFunctions.TruncateTime(xx.CREATED_DATE) //new like }).ToList();