0
我有一个简单的TPH层次:保存更改到子类的属性
public abstract class UserAccount
{
public string FirstName { get;set; }
}
public class InterpreterAccount : UserAccount
{
public string PhoneNumber { get;set; }
}
和的DbContext:
//.......
public DbSet<UserAccount> UserAccounts { get; set; }
public DbSet<InterpreterAccount> InterpreterAccounts { get; set; }
此代码(既节省了名字和PhoneNumber到DB):
var account = _context.InterpreterAccounts.Single(i => i.Id == id);
account.FirstName = "Ivan";
account.PhoneNumber = "+123";
_context.SaveChanges();
而这不保存PhoneNumber属性
var account = (InterpreterAccount)_context.UserAccounts.Single(i => i.Id == id);
account.FirstName = "Ivan";
account.PhoneNumber = "+123";
_context.SaveChanges();
但是在实际情况下,只有在检索到对象后才知道对象的类型,因此需要查询基本集合。
所以问题是:如何保存通过查询EF7中的基础对象集合检索到的TPH层次结构派生对象的更改?
你可以包含'OnModelCreating()'的Fluent API吗? –