gpt4 book ai didi

c# - 仅使用 Z.EntityFramework.Plus 的 SingleUpdate 方法更新特定列

转载 作者:行者123 更新时间:2023-12-05 03:26:32 28 4
gpt4 key购买 nike

在我的项目中,我想使用 Z.EntityFramework.Plus 更新特定数据集的列。我正在使用以下代码:

await db.Features.SingleUpdateAsync(new Feature()
{
ID = featureInfo.ID,
Unit = unit,
});

Feature 类由多个列组成。我只想更新给定 IDUnit 列。但是,此语句总是尝试将所有其他列重置为 null。所以我认为我误解了这种方法的一般工作原理。

如何只更新给定的单位值而不修改(或必须加载)所有其他值?

最佳答案

您可以使用 WhereUpdateFromQuery 来实现它:

await db.Features.Where(x => x.ID == featureInfo.ID).UpdateFromQuery(x => new Feature()
{
Unit = unit
});

对于多个ID,如果单位是常量:

await db.Features.Where(x => ids.Contains(x.ID)).UpdateFromQuery(x => new Feature()
{
Unit = unit
});

如果您有千/百万个 ID,也可以使用 WhereBulkContains方法(这个不是免费的):

await db.Features.WhereBulkContains(ids).UpdateFromQuery(x => new Feature()
{
Unit = unit
});

编辑:回答评论

Is there any documentation for the SingleUpdateAsync method I was using

没有文档。它的工作方式与 BulkUpdate 完全相同,但允许您传递单个实体而不是列表(这是唯一的区别)。

关于c# - 仅使用 Z.EntityFramework.Plus 的 SingleUpdate 方法更新特定列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71708435/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com