我正在开发一个新项目,并希望使用LINQ to SQL来获取数据 访问但遇到了以下问题。
我需要让我的应用程序访问3个类似但不相似的数据库 相同的表结构,例如
Database1和Database 2有一个名为tblCustomer的表,有2列 CustomerKey和CustomerName
Database2有一个名为tblCustomer的表,其中包含3列CustomerKey, CustomerName和CustomerPostCode
我正在寻找一个可以让我查询所有三个问题的解决方案 数据库不需要3个GetCustomerList函数作为Database1 和Database2可以使用相同的功能,相同的结构, 使用数据库3的覆盖功能来恢复附加功能 字段。
有没有办法可以声明一个基础datacontext类来处理数据库 1和2,带有数据库3的继承版本。
提前致谢
斯图尔特弗格森答案 0 :(得分:1)
我认为可能有三个略有不同的表定义(在三个数据库中),只有一个实体/域对象。为此,您需要使用POCO实体(因此没有在L2S对象上修饰的属性)并为DataContext
提供包含数据库定义的映射源。在这种情况下,您将需要三个独立的数据库连接,每个连接都有自己的DataContext
,并有自己的映射。
虽然这可能有用,但这个解决方案可能很脆弱。也许你最好让那些不同的客户对象实现相同的接口或使用能够代表所有这些接口的(非LINQ to SQL相关)对象(代理)。