如果你有一個簡單的LINQ查詢,如:如何動態地選擇從LINQ查詢兩個字段,結果
var result = from record in db.Customer
select new { Text = record.Name,
Value = record.ID.ToString() };
它返回一個可映射到一個下拉列表中的對象,是有可能動態指定哪些字段映射到文本和值?
當然,你可以做一個大的情況下(開關)語句,那麼每個代碼Linq查詢分開,但是這是不是很優雅。什麼是好的會是這樣的:
(僞代碼)
var myTextField = db.Customer["Name"]; // Could be an enumeration??
var myValueField = db.Customer["ID"]; // Idea: choose the field outside the query
var result = from record in db.Customer
select new { Text = myTextField,
Value = myValueField };
不錯!這是確定以字符串的回報,因爲我們可以簡單地做的ToString()以某種方式在代碼的最後一行(myValueField(記錄))。toString()方法? – 2010-04-12 03:55:19
或也許Func鍵<顧客,字符串> myValueField =(用戶C)=> c.ID.ToString(); ? – 2010-04-12 03:57:05
會不會有一種方法來確定在封閉的字段名稱以可變,說(用戶C)=> C [「名稱」]? – 2010-04-12 03:59:42