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