2017-01-30 44 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

相关问题