我想使用的UnitOfWork和存儲庫模式,我有以下的「更新」的方法,如果我替換錶行(ID,顏色,年)的所有元素,工作正常。GenericRepository模式更新方法
public virtual void Update(TEntity entityToUpdate)
{
dbSet.Attach(entityToUpdate);
(entityToUpdate).State = EntityState.Modified;
}
但我想更新只是我傳遞(ID &顏色)的特定列。它會覆蓋其他元素(年份)。
因此,舉例來說,我有一個數據庫,記錄在我的汽車表:
Id = 1,
color = "red"
year = 2010
,如果我像這樣更新...
var location = new Car
{
Id = 1,
color = "blue"
};
unitOfWork.CarRepository.Update(car);
現在的戰績是:
Id = 1,
color = "blue"
year = null
我該如何重寫我的通用存儲庫方法來改變我所提供的內容? (即保持年份值)
直接使用實體時,如何測試服務/ DAL /資源?你不需要嘲笑你需要測試的服務/ DAL /資源方法中使用的每個實體方法嗎? – afarazit 2016-10-24 07:44:00
@afarazit我從不嘲笑數據庫,這是毫無意義的。我嘲笑抽象,'DAL'。有時候,這可能意味着我的模擬DAL使用字典來模擬[快速]集成測試的持久性。 – 2016-10-31 17:48:10
@ChrisMarisic - 您可以指出一些描述模擬DAL而不是數據庫的實現的文章。因爲我也一直在嘲笑db來測試我的服務。 – Nanu 2017-08-18 17:04:35