c代码首先更新数据上下文
本文关键字:数据 上下文 更新 代码 | 更新日期: 2023-09-27 18:12:33
我首先使用代码。但我对更新数据有问题。
我的课是:
public class definition : Base
{
[Key, Column(Order = 1), DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public int definition_GroupId { get; set; }
public int? definition_ParentId { get; set; }
public string definition_txt { get; set; }
public bool IsStatic { get; set; }
public bool IsDeleted { get; set; }
}
我使用的是AjaxPost,我只发送Id和definition.txt。
if (!String.IsNullOrEmpty(param.definition_txt))
{
definitionRepository.Attach(param);
UnitOfWork.Save();
}
我的存储库附加方法是:
public void Attach(T entity)
{
_dbset.Attach(entity);
DataContext.Entry(entity).State = EntityState.Modified;
}
完成。但是更新所有列,我只想更新选定的列。我该怎么办?
我建议先用Find方法从数据库加载实体,然后更新它并保存到数据库,如下所示:
definition originalEntity = _dbset.Find(entity.Id);
originalEntity.definition_txt = entity.definition_txt;
public void Update(T entity, string[] columns)
{
if (columns != null)
{
_dbset.Attach(entity);
foreach (var item in columns)
{
DataContext.Entry(entity).Property(item).IsModified = true;
}
}
}
感谢@DavidG