我有一個linq問題(linq to sql)。我有以下代碼工作正常;Linq查詢問題 - 在運行時確定列
var queryx = (from sa in d1.SampleAttributes
where nodeTable.ToList().Distinct().Contains(sa.client_post_code_prefix)
select sa.SampleId).Distinct();
注:nodeTable的類型是IQueryable的
不過,我想改變這種做法,在含有方法中列名可以在運行時決定的。我從另一個查詢中確定列名,這個查詢依賴於正在應用的特定用戶過濾器,並且理想情況下會使用下面的邏輯來處理某些事情;
//請注意,我傳遞到字符串獲得「列對象總是共享相同的名稱列
var columnWhatever = GetColumnName(string colName);
var queryx = (from sa in d1.SampleAttributes
where nodeTable.ToList().Distinct().Contains(sa.client_post_code_prefix)
select sa.SampleId).Distinct();
到目前爲止,我一直無法找到任何東西,讓這個和我開始認爲Linq不允許這樣的邏輯。任何幫助將不勝感激
dup? http://stackoverflow.com/questions/2148309/how-do-i-reference-a-field-in-linq-based-on-a-dynamic-fieldname – 2010-01-27 16:23:10
@Rob - 不一定;第一個可以用反射來回答,但這可能是其他的東西... – 2010-01-27 16:24:00
@saj - 這裏的底層LINQ實現是什麼? LINQ到對象?實體框架? LINQ到SQL?不幸的是,這很重要。 – 2010-01-27 16:24:29