2012-02-17 62 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