gpt4 book ai didi

c# - 在 Linq-To-Entities 中是否有替代 DateTime.Ticks 或 DateTime.TimeOfDay 的方法?

转载 作者:行者123 更新时间:2023-11-30 15:47:43 25 4
gpt4 key购买 nike

我正在为 asp.net mvc2 web 应用程序编写日志解析器。我使用 Entity Framework 作为模型,并使用我的手动引擎和 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”子句,但它会很大、很丑而且很慢。有没有人有更好的建议?

最佳答案

看看 EF Canonical functionsSQL Server-specific functions 。以下是有关如何使用这些功能的一些指南:
How to: Call Canonical Functions (LINQ to Entities)
How to: Call Database Functions (LINQ to Entities)
Here 你可以找到一些关于 EntityFunctions 类的信息。

关于c# - 在 Linq-To-Entities 中是否有替代 DateTime.Ticks 或 DateTime.TimeOfDay 的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3280631/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com