У меня естьКак обновить объекты в DbContext без знания их точного типа?
object elementToUpdate;
и я хочу, чтобы обновить его в моем DbContext.
Это кажется хорошей отправной точкой
public void Update<TEntity>(TEntity entity)
{
DbContext.Set<TEntity>().Attach(entity);
DbContext.Entry(entity).State = EntityState.Modified;
DbContext.SaveChanges();
}
, как описано here
Моя проблема в том, что я не могу бросить свою elementToUpdate
должным образом. Я знаю, что название это точный тип как строку (например, "MyEntityType"
), но я не знаю, как бросить его с помощью отражения - или, другими словами, как вставить Type-Parameter
DbContext.Set<MyEntityType>()
из строки
"MyEntityType"
Благодарим за помощь.
у вас есть MyEntityType в вашем коде. Если у вас есть возможность использовать фабричный шаблон. – Arash
Вам действительно нужно его бросить, или вы просто не знаете тип во время компиляции? Если вы просто вызываете 'Update (elementToUpdate)' (без указания '', он должен автоматически выбрать правильный общий тип для вашего шаблона на основе этого параметра. –
LInsoDeTeh
@LInsoDeTeh, если объект помещен в поле с «объектом», тогда метод вызываемый 'TEntity', равный' object', не нужный тип. –