为了实现自定义身份验证模块,我使用了asp.net Identity。我需要我的User类继承asp.net Identity的User类。我有两个具有相同名称但不同值类型的字段,当然我收到错误。请告诉我我需要做些什么来防止这个错误。非常感谢。
// asp.net Identity User class
public class User : Entities.User, IUser
{
public new string Id
{
get { return base.Id.ToString(); }
}
}
// My User class
public class Entities.User : BaseDomainObject
{
public string Email { get; set; }
public string PasswordHash { get; set; }
public string SecurityStamp { get; set; }
public string UserName { get; set; }
public List<Login> Logins { get; set; }
}
public abstract class BaseDomainObject
{
public BaseDomainObject()
{
CreatedOn = DateTime.Now;
ModifiedDate = DateTime.Now;
}
public int Id { get; set; }
public DateTime CreatedOn { get; set; }
public DateTime ModifiedDate { get; set; }
public DateTime? DeleteDate { get; set; }
}
答案 0 :(得分:0)
即使它们具有不同的类型,也无法使2个属性具有相同的名称。
如果你需要这件事肯定是一个设计问题,你可能需要再考虑一下你需要涵盖哪些业务场景并寻找不同的设计/解决方案。
答案 1 :(得分:0)
更改您的设计,以便User不会从Entities.User继承。
如果需要对Entities.User对象的引用,可以将其存储为User上的属性:
public class User : IUser
{
private Entities.User _eUser;
public Entities.User EUser
{
get { return _eUser; }
set { _eUser = value; }
}
public string Id
{
get
{
return _eUser.Id.ToString();
}
}
}