2012-03-01 61 views
0

我有以下代碼:LINQ - 日期時間爲String再次

  result = from i in _dbContext.Meetings 
        where i.UserInvitedID == CurrentUserID && i.MeetingStatus == null && i.AllowedTime.AllowedDate.Day >= date 
        //where i.UserInvitedID == CurrentUserID && i.MeetingStatus == null && EntityFunctions.TruncateTime(i.AllowedTime.AllowedDate.Day) >= date 
        select new ITW2012Mobile.Core.DataTable.MeetingModel2() 
        { 
         Name = i.UserInviter.FirstName + " " + i.UserInviter.LastName, 
         Company = i.UserInviter.Company, 
         MeetingID = i.MeetingID, 
         Time = EntityFunctions.AddMinutes(EntityFunctions.AddHours(i.AllowedTime.AllowedDate.Day, i.AllowedTime.Hour).Value, i.AllowedTime.Minute).Value.ToString("0:dddd, MMMM d, yyyy 0:t"), 
         Image = i.UserInviter.ProfileImage, 
         Username = i.UserInviter.aspnet_User.UserName 
        }; 

時間是字符串。當然,我得到

Exception error: {"LINQ to Entities does not recognize the method 'System.String ToString()' method, and this method cannot be translated into a store expression."}

但如何在我的情況下正確寫入?

回答

0

根本不能在L2E中使用.ToString。這是一個EF限制。

你所要做的是,在物空間 - 例如,一個.AsEnumerable()

+0

後,我該怎麼辦呢?在選擇部分我必須設置時間,對吧? – John 2012-03-01 15:56:26

+1

你可以這樣做:'select new {A = iA,B = iB})。AsEnumerable()。選擇(i => new MeetingModel2 {A = iAToString(...),B = iB);' – 2012-03-01 16:03:39

+0

是非常長的腳本(我有大約相似的10個地方,不能合併成一個) – John 2012-03-01 16:09:48