LINQ查询将字符串转换为datetime

我想将字符串值转换为日期时间

public class demoDate { public DateTime DueDate; public int OrderReportID; public DateTime _DueDate { get { return DueDate; } set { DueDate = value; } } public int _OrderReportID { get { return OrderReportID; } set { OrderReportID = value;} } } 

询问

 var DateQuery = (from o in db.Order_Reports select new demoDate { DueDate = System.DateTime.Parse(o.ReportDueDateTime), OrderReportID = o.OrderReportID }).ToList(); 

此编码显示以下错误

LINQ to Entities无法识别方法’System.DateTime Parse(System.String)’方法,并且此方法无法转换为存储表达式。

您需要首先将查询实现(即加载数据)到您的应用程序,然后解析它。 entity framework不知道如何执行.Net方法(如DateTime.Parse ),它只知道如何将它们转换为SQL

 var DateQuery = db.Order_Reports.ToList().Select(o => new demoDate { DueDate=DateTime.Parse(o.ReportDueDateTime), OrderReportID= o.OrderReportID }); 

如果您需要使用SQL转换它,您可以尝试使用SqlFunctions.DateAdd并添加零间隔。

 var DateQuery = db.Order_Reports.Select(o => new demoDate { DueDate = SqlFunctions.DateAdd("day", 0, o.ReportDueDateTime), OrderReportID = o.OrderReportID }); 
 DateTime myDateTime = Convert.ToDateTime(DateTimePicker.Text); var kayitVarmi = (from myfTable in db.tbl_myfTable . . . . where tbl_donemAyYil.donemAyYilKu == myDateTime