Smalldatetime ToString in LINQ

本文关键字:LINQ in ToString Smalldatetime | 更新日期: 2023-09-27 17:50:49

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

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

但是我得到以下错误:

LINQ to Entities不能识别方法System。字符串ToString(System.String)'方法,这个方法不能被翻译

我读了一些帖子,但是我似乎不能让它工作。

Smalldatetime ToString in LINQ

该错误不言自明,您不能使用不能通过Linq to Entities转换为SQL的用户定义方法。你可以在这里看到完整的文章。

假设您的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.