【发布时间】:2010-12-08 05:18:05
【问题描述】:
嘿,我正在尝试创建一个Expression<Func<T, bool>>,其中将字符串属性转换/强制转换为 DateTimeOffset,以便可以对其执行 DateTimeOffset 操作。
我们使用 Linq2SQL 作为我们的数据提供者,它确实支持将字符串转换为 SQL 等效的 DateTimeOffset。理想情况下,我希望直接在 IQueryable 数据源内部计算表达式,而不是作为 IEnumerable 在内存中计算。
以下是我尝试过的示例:
public class MyClass
{
public string MyValue;
}
Expression<Func<MyClass, bool>> filter = mc => DateTimeOffset.Parse(mc.MyValue) > new DateTimeOffset(2007,1,1);
不幸的是,过滤器的这种定义会导致内存评估。
【问题讨论】:
-
我很困惑。物理表列是
char还是datetime? -
在 SQL 中,该列是一个字符串(我相信是 nvarchar)
标签: linq linq-to-sql .net-3.5 datetimeoffset