0
我想寫一個LINQ到SQL查詢,並根據用戶提供的輸入字符串動態選擇在運行時選擇哪個表。現在我有一個選擇語句可以做到這一點,但它只是重複三次相同的查詢,唯一不同的是選定的表格。有點像這樣:Linq to SQL:在運行時動態選擇表
if (input == "94")
{
var query = from i in db.Table94
select new MyClass(i.A, i.B, i.C);
}
if (input == "95")
{
var query = from i in db.Table95
select new MyClass(i.A, i.B, i.C);
}
//more conditional queries
query = query.Where(addtionalFilteringDoneHere);
DataGridView.DataSource = query;
它很容易使用條件Where子句,但我正在尋找類似的表選擇。我厭倦了一些事情,但他們沒有工作。例如:
var query = from i in FetchTable(input)
select new MyClass(i.A, i.B, i.C);
query = query.Where(addtionalFilteringDoneHere);
public returnType FetchTable(string input)
{
//need help here
return db.GetTable<conditionalTable>;
}
我不知道返回類型是什麼,或者即使有辦法做到這一點。可能嗎?
這個重複嗎? http://stackoverflow.com/questions/1919632/get-table-data-from-table-name-in-linq-datacontext – 2012-07-11 19:29:28
這個例子有點令人誤解。兩個查詢最後都有投影,所以在這兩種情況下,都有'IEnumerable'作爲結果。如果表達式類型始終相同,那麼應用過濾器是一項顯而易見的任務。 –
2012-07-11 19:34:22