我有一個類X,Y和Z和需要一種方法來有一個方法返回X,Y或Z,類似的IEnumerable:使用泛型產生IEnumerable的泛型類型
public IEnumerable<T> BuildList<T>(String sql)
{
return Query<T>(sql);
}
如果查詢是一個自定義的方法做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");
是問題的查詢的方法或我我只是在做泛型錯誤?
那麼這*看*好的 - 你有什麼錯誤?這真的提供了通過調用'Query'的好處嗎?你還沒有真正提供足夠的信息來幫助你... –
信息很薄,我知道 - 抱歉。我無法直接調用Query-direct cuz它位於數據訪問層。我得到的錯誤:'T'必須是一個具有公共無參數構造函數的非抽象類型,以便將其用作泛型類型或方法Data.SQL.SqlDataAccessLayerBase.Query中的參數'TStorage'。查詢(string,params Data.SQL.SqlParameter [])'和錯誤#2「類型'T'必須是引用類型才能用作通用類型或方法Data.SQL.SqlDataAccessLayerBase.Query中的參數'TStorage'Query (字符串,參數Data.SQL.SqlParameter [])'「。這有幫助嗎? –
Weholt