gpt4 book ai didi

entity-framework - 使用 EF 更新多对多的正确方法是什么?

转载 作者:行者123 更新时间:2023-12-03 07:27:06 25 4
gpt4 key购买 nike

我很好奇一次更新实体列表的正确方法是什么。

    public ActionWas Update(IEnumerable<surcharge_template> templates)
{
try
{
var templatesToBeUpdated = _context.surcharge_template.Where(x => templates.Select(template => template.st_key).Contains(x.st_key));
//Right here I need to map all of the differences from the original templates
//to the new templates
_context.Entry(templatesToBeUpdated).State = EntityState.Modified;
}
catch (Exception ex)
{
return _exceptionConverter.Convert(ex);
}
_context.SaveChanges();
return ActionWas.Successsful;
}

我在不确定如何处理这个问题的地方发表了评论。我从数据库中获取原始模板,然后需要映射它们,然后提交并保存。

那么映射它们的正确方法是什么?

更新:

我想通过 EF 仅对数据库进行一次调用来执行此操作。枚举列表会导致多个更新语句。

最佳答案

您不需要映射当前实体。您可以改用 SQL Update 等语法。

使用EntityFramework.Extended

//update all tasks with status of 1 to status of 2
context.Templates.Update(
t => t.StatusId == 1,
t2 => new Template {StatusId = 2});

这只是一种解决方法,最后如果您需要对每个模板进行不同的更改,则需要修改实体状态。

关于entity-framework - 使用 EF 更新多对多的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27315706/

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