Допустим, у меня есть сущность Vehicle
, которая ссылается на другую сущность от Type
до TypeId
.Я хочу обновить Vehicle
с помощью Entity Framework, но не хочу обновлять TypeId
(или Type
).
Проблема заключается в том, что Entity Framework хочет обновить весь граф, и в результате свойства сущности Type
перезаписываются пустыми значениями при обновлении Vehicle
.
Полагаю, я мог бы извлечь сущность Type
из источника данных перед обновлением, но, по-видимому, нет необходимости совершать два дополнительных вызова (чтение и сохранение) для базы данных, чтобы обновить сущность, которую не нужно обновлять.
Я бы предпочел отделить сущность Vehicle
от графа и обновить только эту сущность.Как я могу это сделать?
Редактировать:
Вот некоторый код, чтобы прояснить вопрос:
public async Task Update(Vehicle entity)
{
var dataEntity = mapper.Map<VehicleDataEntity>(entity);
await repository.Update(entity.Id, dataEntity);
}
Как вы видите, объект данных создается во время отображения (с помощью Automappar).
Обновление выполняется в простом универсальном репозитории:
public async Task Update(Guid id, TEntity entity)
{
dbContext.Set<TEntity>().Update(entity);
await dbContext.SaveChangesAsync();
}
Вот модель данных:
public class VihecleDataEntity : IEntity
{
[Key]
public Guid Id { get; set; }
public string Description { get; set; }
public VihecleTypeEntity Type { get; set; }
}
public class VihecleTypeEntity: IEntity
{
[Key]
public Guid Id { get; set; }
public string Description { get; set; }
}