gpt4 book ai didi

c# - EF Core 3.1 更新实体

转载 作者:行者123 更新时间:2023-12-05 02:53:48 27 4
gpt4 key购买 nike

我想使用 EF Core 更新我的实体。这两种方法中哪一种更有效且更好用。

Context.Entry(entity).State = EntityState.Modified
Context.SaveChanges();

下一个是

var exist = entities.Find(entity.Id);
Context.Entry(exist).CurrentValues.SetValues(entity);
Context.SaveChanges();

两个主题都可以,但哪个更好?

最佳答案

这取决于你的情况。第一个,据我所知应该重写数据库中的整个实体。第二个可能会成为extra request如果实体尚未被上下文跟踪到数据库,但应该只更新 actually have changed 的字段.因此,如果您启用了更改跟踪并且已经将实体提取到您的上下文中,并且有很多列(或包含大量数据并且可以通过 EF 进行比较的列),第二个应该更快。在其他情况下 - 第一个可以。

关于c# - EF Core 3.1 更新实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61991828/

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