2014-10-02 199 views
0

我正在使用LINQ查詢數據綁定到類的屬性,如如何轉換日期時間爲字符串LINQ查詢C#

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(); 

我想時間值轉換爲字符串的模型類的模式,但沒有得到,我曾嘗試像toString(),ConvertToString()..但沒有得到。如何轉換爲字符串,請幫助我的人..在此先感謝。

+0

我認爲在你的'TimesheetModel'模型中,你已經將'START_DATE'定義爲日期時間,請將它改爲'string'並重試。 – 2014-10-02 05:38:27

+0

@sanjay我不是100%確定,但我認爲你不能在LINQ2SQL查詢中使用'ToString()'。我想你會得到這個錯誤。 P.S也許它一般不在'LINQ2SQL'中,但只有當你使用'EF'時。包括錯誤,如果你使用'EF'。 – Leron 2014-10-02 05:42:05

+2

你會得到什麼?什麼是錯誤信息? – Kjartan 2014-10-02 05:43:12

回答

0

將START_DATE的類型更改爲字符串並保留您的代碼。

創建日期時間?數據類型爲起始日期是這樣的:

DateTime? START_DATE; ...

,並在你的LINQ刪除.toString();

自您提取START_DATE以來,如果您現在要使用它,請將其轉換爲字符串。

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

類似的東西

1

的ToString不可用在這方面。

更新您的時間表模型,以便開始日期的類型爲DateTime。這將允許你的任務。

然後創建第二個「得到」只返回開始日期的ToString()屬性...

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

...或者乾脆把它作爲DateTime和使用時將其轉換。這將爲您通過強類型提供更好的支持。

相關問題