2010-05-07 78 views
1

我正在开发一个新项目,希望能够使用LINQ to SQL来访问数据 ,但遇到了以下问题。使用LINQ to SQL与多个数据库

我需要我的应用程序访问3个数据库具有相似但不 相同的表结构,例如

数据库1和数据库2有一个名为tblCustomer 2列 CustomerKey和客户名称

的Database2表有一个名为tblCustomer与3列CustomerKey, CustomerName和CustomerPostCode

我正在寻找一个解决方案,将允许我查询所有三个 数据库s,而不需要3个GetCustomerList函数作为Database1 ,而Database2可以使用与结构相同的函数 ,数据库3的覆盖函数带回附加的 字段。

有没有一种方法,我可以声明基本DataContext类来处理数据库 1和2继承版本的数据库3.

在此先感谢

斯图尔特·弗格森

+0

不要忘记标记你最喜欢的答案;-) – Steven 2010-06-22 11:35:35

回答

1

我认为这可能有三个略有不同的表定义(在三个数据库中),只有一个实体/域对象。为此,您将需要使用POCO实体(因此在L2S对象上没有任何属性),并为DataContext提供包含数据库定义的映射源。在这种情况下,您将需要三个单独的数据库连接,每个连接都有自己的DataContext及其自己的映射。

虽然这可能有效,但此解决方案可能很脆弱。也许你会更好地让这些不同的客户对象实现相同的接口或使用能够表示所有这些接口的(非LINQ to SQL相关的)对象(代理)。