在 Azure Functions 中检查 EF Core 中的日期

问题描述 投票:0回答:1

我有一个要求,Azure 函数每分钟触发一次,并检查(在那一分钟)10 分钟前的时间(因此,如果在下午 3:00 触发 -> 它会检查数据库中发送到数据库的行下午 2:50 或更早)。

我似乎无法正确理解。这是我的代码:

public void Run([TimerTrigger("0 */1 * * * *")]TimerInfo myTimer, ILogger log)
{
    log.LogInformation($"Timer triggered at {DateTime.Now}");
    log.LogInformation($"Checking transactions before / on {DateTime.Now.AddMinutes(-10)}");


    List<DebtCollectionList> debtCollections = 
        _context.Transactions
                .Where(x => x.Status == 0 
                            && x.TransactionDate <= DateTime.Now.AddMinutes(-10))
                .Select(x => new DebtCollectionList
                                 {
                                     transaction_id = x.TransactionId,
                                     iin_pan = x.IinPan,
                                     transaction_date = (DateTime)x.TransactionDate,
                                     amount = (decimal)x.Amount
                                 })
                .ToList();

我希望列表中填充行,其中

TransactionDate
是此时至少负 10 分钟的时刻。因此,如果时间是下午 3 点,则将填充下午 2:50 及之前的所有行。我正在将行添加到数据库中,但它们没有返回到列表中,我真的认为这与

有关
TransactionDate <= DateTime.Now.AddMinutes(-10)

任何建议都会很棒。

c# entity-framework-core azure-functions
1个回答
0
投票

我现在可以使用了...我删除了

DateTime.Now.AddMinutes(-10);

并将其创建为变量。

就像这样,现在可以工作了:

var compareDate = DateTime.Now.AddMinutes(-10);

List<DebtCollectionList> debtCollections = _context.Transactions.Where(x => x.Status == 0  && x.TransactionDate <= compareDate).Select(x => new DebtCollectionList
{
    transaction_id = x.TransactionId,
    iin_pan = x.IinPan,
    transaction_date = (DateTime)x.TransactionDate,
    amount = (decimal)x.Amount
    


}).ToList();
© www.soinside.com 2019 - 2024. All rights reserved.