c# - 实体框架加上日期时间批量删除不起作用
问题描述
我遇到了需要在特定日期时间批量删除的情况。似乎 EF+ 批量删除功能没有正确地将日期时间等同起来并执行该操作。
它确实适用于其他字段类型,但不是 DateTime。我应该做一些特殊的格式来正确执行这个操作吗?
后端 SQL Server 表具有FileCreatedDate
as DateTime2(7)
. 并且记录都包含DateTime.UtcNow
代码中指定的日期/时间,因为在此代码之前的初始通道创建了这些记录。这是在发生错误时清除创建的记录的备用方法。
我有以下代码:
var fileCreatedDate = DateTime.UtcNow;
using (var db = new MyContextDb())
{
db.SampleModel.Where(e => e.FileCreatedDate == fileCreatedDate).Delete();
}
此代码不起作用。它不会删除时间与条件匹配的记录。
任何想法可能是什么问题?
解决方案
您可以尝试使用范围删除实体吗?
像这样:
db.SampleModel.RemoveRange(db.SampleModel.Where(e => e.FileCreatedDate == fileCreatedDate));
db.SaveChanges();
推荐阅读
- mysql - MySQL 挂起 SELECT 来自带有 blob 字段的表
- python - 将 pandas dataFrame 列值转换为行对角矩阵
- android - 在您的 AndroidManifest.xml 文件中添加行 - 无法提供权限
- html - 固定位置被绝对位置覆盖。我可以为此获得替代解决方案吗?
- amazon-web-services - 使用 AWS Cognito 托管 UI 进行 Unity 跨平台第三方登录
- django - Django 两因素身份验证不起作用
- swift - 无法将类型“[model]”的值分配给类型“Model”
- javascript - 在承诺链中使用钩子值
- java - 为什么我的“word”变量在 Hangman 程序结束时没有更新?
- google-chrome - chrome 扩展不允许 setDiscoverTargets