這是更仿製藥方面比亞音速一個問題:使用Subsonic.Select()方法ExecuteTypedList用字符串
試想一下,如果有以下代碼:
List<int> result =
DB.Select(Product.Columns.Id)
.From<Product>()
.ExecuteTypedList<int>();
這偉大工程,並返回一個泛型列表用我的產品表中的ID。
但是,如果我想要得到的產品名稱的列表:
List<String> result =
DB.Select(Product.Columns.ProductName)
.From<Product>()
.ExecuteTypedList<String>();
它拋出一個編譯器消息(德國翻譯):
「串」必須是一個非抽象鍵入 與公共構造函數沒有 參數,以便用作泛型類型 或通用方法 「SubSonic.SqlQuery.ExecuteTypedList()」 作爲參數「T」。
原因:字符串中有沒有空的構造器:
int i = new int; // works
String s = new String; // compiler error: "string" does not contain a constructor that takes '0' argument
如果我使用一個
,但有一個更優雅的方式,在那裏我可以用List<Object>
,而不是它的工作原理
List<String>
?
更新:List<Object>
不起作用。我確實得到一個對象列表,但似乎是不包含我的ProductNames的對象(object.ToString()返回{Object}
)
這是行不通的。它會嘗試將結果列與StringBuilder上的屬性進行匹配。 – 2009-05-19 15:52:34