小编Bob*_*byB的帖子

GenericRepository模式更新方法

我正在尝试使用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)

我怎样才能重写我的通用存储库方法来改变我提供的东西呢?(即保持年份值)

c# asp.net-mvc unit-of-work repository-pattern

3
推荐指数
1
解决办法
2537
查看次数