c# - 如何使用 Entity Framework .NET Core 编写带有 where 子句的 SQL 更新查询
问题描述
我只想根据下面提到的条件更新一个字段。我知道如何用 SQL 编写它。我不确定如何在实体框架中实现这一点。
UPDATE Table SET SomeDateTime = @NewDateTime WHERE Id = @MyId AND SomeDateTime > @NewDateTime
由于使用了微服务架构,我想使用这个特定的查询。
解决方案
如果Id
是主键,这意味着您只能找到一条记录,那么我更新它的方式是检索记录,更改我要编辑的属性的值,然后将更改保存在上下文中。
int MyId = ...
DateTime NewDateTime = ...
using (YourDbContext dbContext = new YourDbContext())
{
YourObject obj = dbContext.YourObjects.SingleOrDefault(item => item.Id == MyId && item.SomeDateTime > NewDateTime)
if (obj != null)
{
obj.SomeDateTime = NewDateTime;
dbContext.SaveChanges();
}
}
推荐阅读
- java - Spring Boot JPA 2 数据库
- node.js - 发生验证错误时如何修复 npm 存储库?
- angular - Angular/Bootstrap:输入字段以及如何在页面加载时调整内容宽度
- java - 虽然我的休眠事务是在春天提交的,但我遇到了错误,任何人都可以帮我解决这个问题
- delphi - 如何将字段添加到 TfrxDBDataset
- c# - 将数据从 DataGridView 中的列传递到另一种形式的组合框
- javascript - AngularJS 将文本转换为 HTML 标签
- oracle - SQL 监控窗口
- .net - 我应该在 HTTPResponse 中返回长诊断消息的哪个属性?
- android - 在 SearchView 中覆盖 BackButton 按下