Entity Framework 5 обновление таблицы для каждого типа, изменение подтипа, но сохранение того же базового типа
У меня простая иерархия
public abstract class CommunicationSupport
{
public SupportTypeEnum Type { get; set; }
public Country Origin { get; set; } // National or Foreign support
}
public class TelecomSupport : CommunicationSupport
{
public string Number { get; set; }
}
public class PostalSupport : CommunicationSupport
{
public Address Address { get; set; }
}
Я планирую использовать иерархию таблиц по типам для моей БД. Таким образом, будут созданы 3 таблицы, одна базовая и две дочерние, использующие тот же PK, что и базовая.
Моя проблема в том, что я хочу иметь возможность обновить CommunicationSupport, изменив его тип. Допустим, я создаю TelecomSupport, сохраняю его, затем изменяю его тип на PostalSupport и сохраняю его снова (обновление). В результате я ожидаю, что EF сохранит ту же базовую запись (CommunicationSupport Id), но удалит запись в таблице TelecomSupport и создаст новую в PostalSupport. Таким образом, TelecomSupport и PostalSupport являются эксклюзивными и не могут использовать одну и ту же базовую CommunicationSupport.
Как я могу сделать это, используя EntityFramework 5?
Спасибо за вашу помощь!