从Repository方法返回Generic类型

时间:2017-06-15 14:15:15

标签: c# asp.net

如果我使用返回泛型类型的方法创建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对象,但它是泛型类型。所以我使用存储库的类不必知道数据库中的对象是什么类型。

0 个答案:

没有答案