Linq - 从DateTime中选择日期

Rea*_*eel 8 .net c# sql linq datetime

我有一个Linq结果的,我只需要选择DateDateTime.
我的查询是这样的:

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();
Run Code Online (Sandbox Code Playgroud)

那可能吗?任何帮助将不胜感激.

CREATED_DATE - `datetime` datatype
Run Code Online (Sandbox Code Playgroud)

实际上,我将它绑定到一个控件作为一个DataSource控件显示两者Date and Time.但我只想显示date.

当我正在尝试时CREATED_DATE = xx.CREATED_DATE.Value.Date,它会给出一个错误:

LINQ to Entities不支持指定的类型成员"Date".仅支持初始值设定项,实体成员和实体导航属性.

Kaf*_*Kaf 21

如果是出于演示目的,那么您可以使用DataFormatString属性.例如,如果要将数据源绑定到GridView,则可以执行以下操作:

<asp:BoundField DataField="CREATED_DATE" ...
     DataFormatString="{0:d}" ../>
Run Code Online (Sandbox Code Playgroud)

否则,您可以使用EntityFunctions.TruncateTime()返回没有时间部分的输入日期.

EntityFunctions.TruncateTime(xx.CREATED_DATE)
Run Code Online (Sandbox Code Playgroud)

你的查询就像;

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,
                       EntityFunctions.TruncateTime(xx.CREATED_DATE) //new like
                     }).ToList();
Run Code Online (Sandbox Code Playgroud)

  • 在较新版本的Entity Framework中,`EntityFunctions`已被`DbFunctions`取代. (7认同)