我有一个简单的层次结构
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; }
}
Run Code Online (Sandbox Code Playgroud)
我计划为我的数据库使用Table-per-type层次结构.因此将创建3个表,一个基数和两个子项使用与基础相同的PK.
我的问题是我希望能够通过更改它的类型来更新CommunicationSupport.假设我创建了一个TelecomSupport,将其保存,然后将其类型更改为PostalSupport并再次保存(更新).我期望的结果是EF保持相同的基本记录(CommunicationSupport Id),但删除TelecomSupport表中的记录并在PostalSupport中创建一个新记录.因此,TelecomSupport和PostalSupport是独家的,不能共享相同的基础CommunicationSupport.
我如何使用EntityFramework 5来做到这一点?
谢谢你的帮助!