0

我的程序(用C#编程的WCF服务)必须访问多个sql服务器组和这些组(sql server)中的数据库。它看起来像LINQ 2 SQL绝对不支持这一点,除非我为每个数据库创建多个数据类,并且它看起来像实体框架在同一条船上。.net - 访问多个sql服务器组/数据库

你将如何去设置你的应用程序必须访问多个未链接的sql服务器组?

我想我可以使用SqlConnection和SqlCommand并创建一些类来处理它。如果我走这条路线,我将如何使用查询的结果填充我的模型类? (我不想使用数据表,而是List<T>

I.E.

Server1 
- database 1 
- database 2 
Server2 
- database 3 
- database 4 

我的程序必须访问数据库1和数据库4,它们没有链接/不会被链接。

回答

1

您可以使用EF或LinqToSql访问每个数据库。您的服务将像经纪商一样工作。它将收集来自不同数据库的结果并构建具有完整数据的DTO。

编辑:

如果你有相同名称的SP可以重用单EF模型。如果您有不同名称的SP,则可以为每个数据库创建模型。这些实体实际上是相同的,因此您可以使用将实体从模型映射到您的POCO类的POCO方法(仅EF 4.0)。 POCO课程将被所有模型使用。

+0

这是真的,但从我的理解,我将不得不为每个数据库创建一个新的linq 2 sql或EF文件......我试图避免这样做。我希望他们分享相同的DTO。 – 2010-08-25 13:29:10

+0

这些数据库具有相同的结构?所以你想从这些数据库中提取相同的数据? – 2010-08-25 13:35:17

+0

不,数据库结构完全不同,但SP的我想调用别名字段以适应模型对象。 I.E.查询一个数据库中的地址时会查看不同的表,而不是查询另一个数据库中的地址,但SP将返回相同的字段名称以填充同一对象模型。 – 2010-08-25 13:38:11