首页 > 解决方案 > 实体框架加上日期时间批量删除不起作用

问题描述

我遇到了需要在特定日期时间批量删除的情况。似乎 EF+ 批量删除功能没有正确地将日期时间等同起来并执行该操作。

它确实适用于其他字段类型,但不是 DateTime。我应该做一些特殊的格式来正确执行这个操作吗?

后端 SQL Server 表具有FileCreatedDateas DateTime2(7). 并且记录都包含DateTime.UtcNow代码中指定的日期/时间,因为在此代码之前的初始通道创建了这些记录。这是在发生错误时清除创建的记录的备用方法。

我有以下代码:

var fileCreatedDate = DateTime.UtcNow;

using (var db = new MyContextDb())
{
    db.SampleModel.Where(e => e.FileCreatedDate == fileCreatedDate).Delete();
}

此代码不起作用。它不会删除时间与条件匹配的记录。

任何想法可能是什么问题?

标签: c#sql-serverentity-framework-plus

解决方案


您可以尝试使用范围删除实体吗?

像这样:

db.SampleModel.RemoveRange(db.SampleModel.Where(e => e.FileCreatedDate == fileCreatedDate));
db.SaveChanges();

推荐阅读