我有一个包含子集合的集合,其中一个是作为字符串存储在数据库中的日期字段,格式为 yyyymmdd(其中还包含一些随机的东西,例如“E”或 20085 等)。该日期也是该集合中的子集合之一的一部分。此日期字段现在将用于搜索,因此我需要将其设置为真实日期才能在 LINQ 语句中使用它。
我从那以后了解到 LINQ to SQL 不支持它无法转换为 SQL 的语句,因此我无法插入返回正确转换日期的函数,并且我还没有找到将字符串转换为的标准转换函数一个有效的日期对象。
我也尝试了分层转换,虽然这闻起来很糟糕,例如:
search = from c in search
where c.Object.Any(p=> new DateTime(Convert.ToInt32(p.theDate, Substring(0,4))))... etc.
无论我在这里做什么,我都收到了转换错误。
我的基本问题是:LINQ to SQL 是否支持这种转换的内联内容?另一种选择是更改数据模型或制作视图,但我宁愿先看看是否有办法在代码中处理这个问题。我想要做的是如下所示:
search = from c in search
where c.subcollection.Any(p=>p.theDate >= min) && c.subcollection.Any(p=>p.theDate <= max)
select c;
其中 min 和 max 在日期值中传递。
谢谢!