【发布时间】:2017-02-06 09:14:45
【问题描述】:
我有一列 TG003 来存储日期,它是一个字符串。
我想列出过去 7 天的数据
以下是我所做的,但我遇到了错误:
LINQ to Entities 无法识别方法 'System.DateTime ToDateTime(System.String)' 方法,并且该方法无法转换为存储表达式。
public List<CCOPTG> listrecentCCOPTG()
{
string startdate = DateTime.Today.AddDays(-7).ToString("yyyyMMdd");
string enddate = DateTime.Now.ToString("yyyyMMdd");
return db.CCOPTG.Where(p => Convert.ToDateTime(p.TG003)>=Convert.ToDateTime(startdate) && Convert.ToDateTime(p.TG003) <= Convert.ToDateTime(enddate)).OrderByDescending(p=>p.TG003).ToList();
}
请指教。
【问题讨论】:
-
对数据使用正确的数据类型。 不要将日期存储为字符串。将
TG003的类型更改为date。您可能不必更改任何其他内容,yyyyMMdd是明确的日期文字格式 -
错误提示:“Linq 尝试将
Convert.ToDateTime转换为 SQL。但此方法没有直接翻译”。基本上SQL没有Convert.ToDateTime方法。 -
我将数据类型更改为 DateTime ,感谢您的建议!