如何在linq查询中将DateTime转换为字符串c#

时间:2014-10-02 05:31:20

标签: c# linq datetime

我在使用linq查询绑定到模型类属性(如

)时获取数据
var employeesNotEnteredTimesheetList = 
    ( from emps in reslandentity.EMPLOYEE
      join notify in reslandentity.NOTIFICATION 
        on emps.NOTIFICATION_ID equals notify.ID
      from week in reslandentity.WEEK_CALENDER
      from statlk in reslandentity.STATUS_LKUP
      where !reslandentity.TIMESHEET.Any( m => m.RES_ID == empid && 
                                               m.WEEK_CAL_ID == week.ID && 
                                               m.COMP_ID == Companyid && 
                                               m.RES_TYPE == "EMPLOYEE"
                                        ) &&
            week.WEEK_START_DT.Month == month &&
            week.WEEK_START_DT.Year == year &&
            emps.COMP_ID == Companyid &&
            emps.ID == empid &&
            statlk.TYPE == "TIMESHEET" &&
            statlk.STATE == "NOT_ENTERED" &&
            week.WEEK_START_DT <= thisWeekStartDate &&
            emps.IS_DELETED == "N"

     select new TimesheetModel
     {
         EMP_ID = emps.ID,
         EMP_COMP_ID = emps.COMP_EMP_ID,
         EMPLOYEE_NAME = emps.FIRST_NAME + " " + emps.LAST_NAME,
         PrimaryEmail = notify.PRI_EMAIL_ID,
         DESCR = statlk.DESCR,
         RES_TYPE = "EMPLOYEE",
         START_DATE =week.WEEK_START_DT.ToString(), // Getting Error here when executing query
         EDate = week.WEEK_END_DT,
         EMP_STATUS = "NOT_ENTERED"
     } ).Distinct().ToList();

我想将datetime转换为模型类中的字符串,但没有得到,我试过像toString(),ConvertToString()..但没有得到。如何转换为字符串,请帮助我任何人..先谢谢。

2 个答案:

答案 0 :(得分:1)

ToString在此上下文中不可用。

更新时间表模型,使开始日期的类型为DateTime。这将允许你的任务。

然后创建第二个&#39; get&#39; only property返回开始日期的.ToString()...

Public string StartDateString
{
    get{ return this.StartDate.ToString();}
}

...或者只是将其保留为DateTime并在使用时将其转换。通过强类型,这将为您提供更好的支持。

答案 1 :(得分:0)

将START_DATE的类型更改为字符串并保留代码。

OR

制作日期时间?数据类型为START_DATE类似于:

DateTime? START_DATE; ...

并删除linq中的.toString();

自您提取START_DATE以来,如果您现在使用它,请将其转换为字符串。

START_DATE.toString("dd-MMM-yyyy");

像这样的东西