Скажем, у меня есть 2 класса в модели: Пользователь (сопоставлен с таблицей USERS) и PrivilegedUser (наследует пользователя, дополнительная информация хранится в таблице PRIVILEGEDUSERS).
Теперь у меня есть строка в USERS (и экземпляр пользователя) и вам нужно преобразовать этого пользователя в PrivilegedUser (т.е. создать запись в PRIVILEGEDUSERS с тем же идентификатором). Есть ли способ сделать это без удаления/вставки?
Проблема в том, что в модели нет представления PRIVILEGEDUSERS, поэтому вы не можете создать только часть PrivilegedUser.
Это был просто пример. Привилегированный пользователь может иметь некоторый скидочный или личный менеджер или другое дополнительно для обычных пользовательских свойств. В то же время существуют другие таблицы, которые должны ссылаться на пользователей независимо от конкретного типа пользователя. Я реализовал его с использованием режима наследования типа "на каждый тип". На уровне базы данных очень просто конвертировать пользователей из одного типа в другой (вам просто нужно вставить или удалить запись из таблицы расширений). Но в EF у вас есть только UserSet, который хранит объекты User и PrivilegedUser. Вот почему я спрашиваю, можно ли заменить объект существующий пользователя на PrivilegedUser, сохраняя существующий идентификатор и не удаляя запись из таблицы USERS.