я получаю исключение: InvalidOperationException: The original state instance has the wrong type.
при использовании версии следующего сократить код:Исходное состояние экземпляра имеет неправильный тип
Table existing = context.Tables.Single(t => t.Key == derivedFromTable.Key);
context.Tables.Attach((Table)derivedFromTable, existing); //thrown here
context.SubmitChanges();
Где derivedFromTable is DerivedFromTable
и class DerivedFromTable : Table
.
Что означает это исключение (как ясно ((Table)derivedFromTable) is Table
и existing is Table
) и как его разрешить?
Спасибо! К счастью, мой класс «Таблица» содержит конструктор, который принимает тип «Таблица», поэтому теперь у меня есть «var updated = new Table (производныйFromTable)», а затем «Attach (обновленный, существующий)». –
... который не работает ... Думаю, мне придется идти по вашему маршруту. –
Спасибо за согласие ... не знаю, почему ваше решение не будет работать, если конструктор копирования не работает должным образом или что-то в этом роде. Если вы используете AutoMapper, обязательно выполняйте «Mapper.CreateMap()» в какой-то момент во время запуска приложения, иначе ваша карта не будет инициализирована, и вы получите сообщение об ошибке при попытке вызвать «Mapper.Map < DerivedFromTable, Table>() ' –
luksan