LINQ

时间:2015-05-26 14:11:28

标签: c# linq tostring

我有一个smalldatetime字段,我试图转换为LINQ中的字符串。 这是我目前的代码:

var entities = from a in dbcontext.Article
where a.PubDateTime.ToString("ddMMyyyy") == pubDate
select a;

但是我收到以下错误:

  

LINQ to Entities无法识别方法' System.String   的ToString(System.String)'方法,这个方法无法翻译   进入商店表达。

我已经阅读了一些帖子,但我似乎无法让它发挥作用。 任何指针都会很棒。

1 个答案:

答案 0 :(得分:1)

错误不言而喻,您不能使用无法通过Linq to Entities转换为SQL的用户定义方法。您可以看到完整的文章here

假设您的pubDate是字符串,请尝试以下代码

DateTime date = DateTime.Parse(pubDate); // You may have to specify your own format
DateTime date2 = DateTime.ParseExact(pubDate,"ddMMyyyy",System.Globalization.CultureInfo.Invarian‌​tCulture); // Like suggested by XenoPuTtSs

// choose date or date2, according to your needs

var entities = from a in dbcontext.Article
    where a.PubDateTime == date
    select a;

比较这样的日期时,您可能也会遇到时间问题,因此您可以查看DbFunctions.TruncateTime