Linq-To-Entities中是否有DateTime.Ticks或DateTime.TimeOfDay的替代方案?
我正在为asp.net mvc2 Web应用程序编写日志解析器。我使用Entity框架作为模型,并使用我的手动引擎和SqlServer2008 CDC功能完成日志记录。
在数据库中插入或编辑行时,将记录操作。但是,实际表中发生的更改与记录这些更改之间存在一个小的延迟。当用户点击其中一些时,我需要显示CDC表中的详细信息。由于前面提到的滞后,我无法比较两个DateTime值的等价性。我想允许滞后2000毫秒。我知道最简单的方法是使用Ticks或TimeOfDay并比较它们减去的值的绝对值,但该死的Linq-To-Entities不允许这两个属性。
这是我遇到问题的简单功能......
public static List<dbo_Object_CT> GetLogDetails (Int32 objectID, DateTime? actionDateAndTime)
{
ObjectEntities oe = new ObjectEntities();
var mylogdetails = (from objectLog in oe.dbo_Object_CT
join ltm in oe.lsn_time_mapping on objectLog.C___start_lsn equals ltm.start_lsn
where (objectLog.Id == objectID)
&& ((actionDateAndTime == null) ? true : (Math.Abs(actionDateAndTime.Value.Ticks - ltm.tran_begin_time.Value.Ticks) < 2000))
select objectLog).ToList();
return mylogdetails;
}
我知道我可以手动做“where”子句,但它会很大,很丑,很慢。有没有人有更好的吸烟?
没有找到相关结果
已邀请:
2 个回复
街茬
柑恫祟
生成SQL之类的东西
不知道如何让LINQ生成sql之类的