gpt4 book ai didi

entity-framework - 哪个是在 EF6 中更新对象的好方法

转载 作者:行者123 更新时间:2023-12-04 07:27:10 24 4
gpt4 key购买 nike

我搜索并找到了两种在 EF 中更新对象的方法

var attachedEntity = _context.EntityClasses.Local.First(t => t.Id == entity.Id);
//We have it in the context, need to update.
if (attachedEntity != null)
{
var attachedEntry = _context.Entry(attachedEntity);
attachedEntry.CurrentValues.SetValues(entity);
}
else
{
////If it's not found locally, we can attach it by setting state to modified.
////This would result in a SQL update statement for all fields
////when SaveChanges is called.
var entry = _context.Entry(entity);
entry.State = EntityState.Modified;
}
_context.SaveChanges();

其他方式似乎更简单

 var entity = _context.EntityClasses.FirstOrDefault(t => t.Id == entity.Id);
_context.Entry(entity ).EntityState.Modified
_context.SaveChanges();

更新对象的最佳方式是什么?注意:性能对我来说很重要

最佳答案

  1. _context.EntityClasses.Local.First(t => t.Id == entity.Id)=> 表示您想在本地仔细检查实体(从 DB 最新加载)并且它不会发送到 DB 来查找记录,因此性能更快。

  2. _context.EntityClasses.FirstOrDefault(t => t.Id == entity.Id):此命令用于在数据库中查找实体。这意味着 EF 创建查询并在数据库中查找。

下面的链接是 Entity.Local.Find 和 Entity.Find http://msdn.microsoft.com/en-us/data/jj592872.aspx 之间的区别

希望对您有所帮助!

关于entity-framework - 哪个是在 EF6 中更新对象的好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24073485/

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