如果我使用返回泛型类型的方法创建repostory,这是不好的设计。例如,在AccountsRepository中,如果我有:
public class Repository<T> : IRepository<T>
where T : class
{
}
public class AccountsRepository<TUser> : Repository<User>, IAccountsRepository
where TUser : class,IUser,new()
{
public TUser GetUserByUserName(string username)
{
return this.context.User.Where(s => s.UserName.Equals(username)).Select(c=>new TUser(){ Password =c.Password } ).FirstOrDefault();
}
}
这是否是正确的方法。所以这就像我返回DTO对象,但它是泛型类型。所以我使用存储库的类不必知道数据库中的对象是什么类型。