Я пытаюсь использовать шаблон unitofwork и repository, и у меня есть следующий метод «обновления», который отлично работает, если я заменяю все элементы в строке таблицы (id, color, year).GenericRepository pattern Метод обновления
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
@afarazit Я никогда не издеваюсь над базой данных, это бессмысленно. Я издеваюсь над абстракцией, «DAL». Иногда это может означать, что мой издевающийся DAL использует словари для имитации персистентности для [быстрых] тестов интеграции. –
@ChrisMarisic - Можете ли вы указать на какую-то статью, которая описывает реализацию насмешливого DAL вместо баз данных. Потому что я тоже высмеивал db, чтобы проверить свои услуги. – Nanu