我正在尝试使用单元工作和仓储模式,并且我有以下的“更新”方法,如果要替换表行中的所有元素(id、颜色、年份),则正常运作。
public virtual void Update(TEntity entityToUpdate)
{
dbSet.Attach(entityToUpdate);
(entityToUpdate).State = EntityState.Modified;
}
但我只想更新我所传递的特定列(id和color),而不是覆盖其他元素(year)。
例如,我在我的Cars表中有一个数据库记录:
Id = 1,
color = "red"
year = 2010
如果我这样更新它...
var location = new Car
{
Id = 1,
color = "blue"
};
unitOfWork.CarRepository.Update(car);
记录现在是:
Id = 1,
color = "blue"
year = null
我该如何重写通用仓储方法以只更改输入的内容?(即保留年份值)