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; }
このコードは動作します(両方の姓を節約しますそして、DBへのPhoneNumber):
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を含めることができますか? –