2017-01-30 91 views
0

我有一個簡單的查詢,表達式樹不能包含一個動態操作 - LINQ

  var RoundList = (from t1 in entities.RPlays.AsNoTracking() 
          where t1.Start.ToString("d") == "01/03/2017" && t1.VId == 32 
          select new 
          { 
           TimePlayed = t1.TimePlayed, 
           MatchPlayed = t1.MatchPlayed 
          }); 

這讓我的消息「表達式樹不能包含一個動態操作」,但它並沒有說在哪裏:(

我得到了where線的問題。

我在做什麼錯?

+0

你檢查任何與相同問題的許多其他問題嗎? – tnw

+1

我想這是'ToString'。爲什麼不比較'DateTime'或者單獨比較月份,日期和年份。 – juharr

+0

也許將您的「01/03/2017」轉換爲日期時間變量,並使用類型比較而非字符串轉換。 – jleach

回答

2

這是由於ToString("d")

你應該嘗試只是比較日期是這樣的:

 DateTime myDate = DateTime.Parse("2017-03-01"); 
     var RoundList = (from t1 in entities.RPlays.AsNoTracking() 
         where t1.Start == myDate && t1.VId == 32 
         select new 
         { 
          TimePlayed = t1.TimePlayed, 
          MatchPlayed = t1.MatchPlayed 
         }); 
+1

實際上可能需要執行't1.Start.Date == myDate',以便截斷時間,或單獨比較'DateTime'部分。 – juharr

+0

的確如此! –

+0

都對(@Ofir和@juharr):)謝謝! :) – Dana

相關問題