-1

所以我只有一个 CreatedDate 可以使用。

我有一个计划任务,每天午夜 12 点运行,它需要获取该月同一天的所有记录(但如果 CreatedDate == DateTime.Now 则不需要)。

我希望它在 LINQ 中,因为这是一个数据库调用,但我认为任何迭代逻辑都足够了。

我现在有这个,但是天数超过 28 天有问题:

var results = Context.Subscriptions.Where(
                x => !(x.StartDate.Day == DateTime.Now.Day &&
                      x.StartDate.Month == DateTime.Now.Month &&
                      x.StartDate.Year == DateTime.Now.Year) && 
                     x.StartDate.Day == DateTime.Now.Day);

为清楚起见更新问题:

例如,一条记录的创建日期是 2013 年 1 月 31 日。这条记录应该每个月都被拉取。但由于并非所有月份都有 31 天,所以我上面的代码在这些月份不起作用。即使那个月没有31号,我仍然需要每个月拉记录。

4

1 回答 1

0

只是一个想法,也许您可​​以利用 Windows 服务来运行计划任务,但.net 中有另一种方式的任务计划程序。如果您打算使用 Windows 服务,可以使用计时器类进行重复运行。如果你有一个任务表,你可以有intervaldatetime、datelastrundatetime 和nextjobdatetime 的列。在这里,您可以检查它将运行的时间间隔,并检查要运行或不应该运行的作业/任务的日期时间。

检查此以获取更多信息:http: //msdn.microsoft.com/en-us/magazine/cc163821.aspx

我希望它对你有帮助。

于 2013-09-06T03:04:08.977 回答