Linq C#中的DateTime转换

泽维尔·W。

我正在尝试编写一个查询,以选择今天创建的所有数据的查询。

这是我的要求:

public List<Projet> GetEnvoiMailBienvenueProjet(Site site)
        {
            var res =
                _context.Projet.Where(
                    a =>
                        a.SiteId == site.SiteId && a.Client1.AdresseClient.EnvoiEmailBienvenue &&
                        a.Client1.AdresseClient.Email != null && a.Client1.AdresseClient.Email != "" &&
                        a.CreationDate.ToString("{0:MM/dd/yyyy}") == DateTime.Now.ToString("{0:MM/dd/yyyy}"));
            return res.ToList();
        }

我处理这个异常:

{“方法'System.String ToString(System.String)'不支持转换为SQL。“}

我已经尝试了其他可能,所有时间都在抛出这样的异常。

乔恩·斯基特

我建议您完全摆脱字符串转换:

DateTime today = DateTime.Today;
var res =
        _context.Projet.Where(
            a => ... && a.CreationDate == today);

或可能(如果还a.CreationDate包含时间):

DateTime today = DateTime.Today;
var res =
        _context.Projet.Where(
            a => ... && a.CreationDate.Date == today);

仅当您对文本表示形式真正感兴趣时,才应使用字符串转换(解析或格式化)。在这里,您似乎真正感兴趣的只是比较日期组件-而且您绝对不需要字符串转换。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章