我正在尝试使用unitofwork和存储库模式,并且我有以下"更新"方法,如果我替换表行(id,color,year)中的所有元素,它可以正常工作.
public virtual void Update(TEntity entityToUpdate)
{
dbSet.Attach(entityToUpdate);
(entityToUpdate).State = EntityState.Modified;
}
Run Code Online (Sandbox Code Playgroud)
但我想更新我传递的特定列(id和color).它会覆盖其他元素(年份).
例如,我的Cars表中有一个数据库记录:
Id = 1,
color = "red"
year = 2010
Run Code Online (Sandbox Code Playgroud)
如果我更新它...
var location = new Car
{
Id = 1,
color = "blue"
};
unitOfWork.CarRepository.Update(car);
Run Code Online (Sandbox Code Playgroud)
记录现在是:
Id = 1,
color = "blue"
year = null
Run Code Online (Sandbox Code Playgroud)
我怎样才能重写我的通用存储库方法来改变我提供的东西呢?(即保持年份值)