追加のプロパティ (LoginUser クラス) を持つ User オブジェクトの派生クラスを作成したいのですが、データベースから User をフェッチすると、エンティティ フレームワークが派生クラスを返します。これは望ましくありません..派生クラスにはパラメーターのないコンストラクターがなく、ログインのラッパーとしてのみ作成する必要があります..だから私は onCreateModel にこれを追加しました:"
modelBuilder.Ignore<LoginUser >();
しかし、LoginUser オブジェクトを保存または参照しようとすると、エンティティにマッピング (LoginUser) がないという例外がスローされます。エンティティ フレームワークで基本クラスのマッピングを使用するにはどうすればよいですか?
これは私のクラスです:
public class User
{
public int Id { get; set; }
public string Name { get; set; }
public string Role { get; set; }
}
public class LoginUser : User, IPrincipal
{
private IPrincipal underlayingPrincipal;
public IIdentity Identity
{
get
{
return this.underlayingPrincipal.Identity;
}
}
public LoginUser(IPrincipal principal, User user)
{
this.underlayingPrincipal = principal;
this.Id = user.Id;
this.Name = user.Name;
this.Role = user.Role;
}
public bool IsInRole(string role)
{
return this.Role == role;
}
}