我有一个X,Y和Z类,需要一种方法来返回一个IE,Y或Z的IEnumerable,如:
public IEnumerable<T> BuildList<T>(String sql)
{
return Query<T>(sql);
}
其中Query是一种自定义方法,用于执行SQL查询并将结果映射到T的IEnumerable。
我想使用它:
var x_items = BuildList<X>("select * from table_x");
var y_items = BuildList<Y>("select * from table_y");
var z_items = BuildList<Z>("select * from table_z");
问题是查询方法还是我只是在做泛型错误?
答案 0 :(得分:4)
鉴于你在评论中给出的编译器错误,听起来你只需要T
上的类型约束:
public IEnumerable<T> BuildList<T>(String sql) where T : class, new()
{
return Query<T>(sql);
}
答案 1 :(得分:1)
类型的T应该存在于dbcontext
中