我有一个smalldatetime字段,我正试图转换为LINQ中的字符串。这是我当前的代码:
var entities = from a in dbcontext.Article
where a.PubDateTime.ToString("ddMMyyyy") == pubDate
select a;
但是我得到以下错误:
LINQ to Entities不能识别方法System。字符串ToString(System.String)'方法,这个方法不能被翻译
我读了一些帖子,但是我似乎不能让它工作。
该错误不言自明,您不能使用不能通过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.InvariantCulture); // 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.