2012-02-17 63 views
0

我有一個程序使用linq to sql datacontext訪問許多類似的表。 LINQ到SQL表執行一個通用的接口?我想編寫可與任何類似的表的工作方法,所以這將是巨大的像做LINQ to SQL:通過接口輕鬆使用多個數據上下文

Dim myTable as ILinqDataTable 
If switch = "TableA" then myTable=myDataContext.TableA Else myTable=myDataContext.TableB 

這可能與LINQ to SQL的?

更新

Dim datasource as IlinqDatatable // new interface that I implemented based on John's suggestion 
Dim rec = From l in datasource where l.exported=false select l //raises "Late binding operations cannot be converted to an expression tree." 

回答

2

沒有內置接口,你可以使用。但是,您可以創建自己的。

LINQ to SQL生成的類是部分類。這允許您創建另一個類部件並指定該類實現一個接口。這樣,您可以強制所有類似的表實現相同的界面。

+0

謝謝。所以當我查看datacontext中的部分類背後的代碼時,我看到像Partial Class TableA這樣的東西...我應該將其改爲類似於部分類TableA Implements MyInterface的東西? – bernie2436 2012-02-17 17:48:10

+0

不,在一個單獨的文件中,創建您自己的'部分類表A實現MyInterface'。部分類的概念是一個類可以由多個部分組成。 – 2012-02-17 17:50:05

+0

John,我嘗試添加一個接口,並且出現編譯器錯誤「後期綁定操作無法轉換爲表達式樹。」也許如果對象類型是在運行時分配的(因爲你是從實現一個接口的對象查詢的),linq不能將它轉換爲sql查詢嗎?昏暗的數據源爲IlinqDatatable;從l的數據源中l.exported = false選擇l //會產生這個錯誤 – bernie2436 2012-02-17 18:11:27