我正在处理一些与EF4.3单表继承相关的代码。
有一个名为User的实体和另一个名为Admin的实体。Admin继承自User。
User类
public class User
{
public int Id {get;set;}
public string Username {get;set;}
}
管理员类
public class Admin : User { }
EF生成了带有Discriminator列的数据库表。当添加一个Admin记录时,Discriminator =“Admin”,而User记录将具有Discriminator =“User”。
我的问题是,如果我想将用户变为管理员,如何更新Discriminator列?
我尝试从一种对象类型转换为另一种对象类型,并使用EF保存。但那不会更改Discriminator列。我该怎么改变它?
谢谢任何帮助。
User user = GetUser(); Admin admin = Admin.FromUser(user); dbContext.Users.Remove(user); dbContext.Admins.Add(admin);
。这样做有什么不好的原因吗? - 41686d6564 stands w. Palestine