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

C# 如何在linq查询c中将DateTime转换为字符串#,c#,linq,datetime,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_CALEND

我在绑定到模型类属性时使用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();
var employeesnoteredtimesheetlist=
(来自reslandentity.EMPLOYEE中的emps)
加入reslandentity.NOTIFICATION中的notify
关于emps.NOTIFICATION_ID等于notify.ID
从reslandentity.week\u日历中的周开始
从reslandentity.STATUS\u LKUP中的statlk
其中!reslandentity.TIMESHEET.Any(m=>m.RES\u ID==empid&&
m、 WEEK\u CAL\u ID==WEEK.ID&&
m、 公司ID==公司ID&&
m、 资源类型==“员工”
) &&
week.week\u START\u DT.Month==月份&&
周开始年==年&&
emps.COMP_ID==公司ID&&
emps.ID==empid&&
statlk.TYPE==“时间表”&&
statlk.STATE==“未输入”&&

week.week_START_DT将START_DATE的类型更改为string并保留代码

创建一个DateTime?数据类型以开始\u DATE,如下所示:

DateTime?开始日期;

并删除linq中的
.toString()

由于您的抓取开始日期,如果您现在要使用它,请将其转换为字符串

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

类似于

的ToString在这种上下文中不可用

更新您的时间表模型,使开始日期为DateTime类型。这将允许您的工作分配

然后创建第二个“get”only属性,该属性返回开始日期的.ToString()

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

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

我认为在您的
时间表模型中,您已经将
开始日期定义为DateTime,请将其更改为
字符串
,然后重试。@sanjay我不是100%确定,但我认为您不能使用
ToString()
在LINQ2SQL查询中。我猜您会遇到错误。P.S通常情况下,它可能不在
LINQ2SQL
中,但只有在您使用
EF
时才会出现。包括错误,如果您使用
EF
。您得到了什么?错误消息是什么?这个实体框架吗?EF不支持
ToString
@CoryNelson是的,它现在确实支持ToString()。