我想为我的用户对象创建一个派生类,它有一些额外的属性(登录用户类),但是当我从数据库中获取用户时,实体框架会返回派生类。这是不需要的。派生类没有无参数构造函数,只能作为登录的包装器创建。所以我将其添加到 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;
}
}