如何避免MSDTC?

如何避免MSDTC?

问题描述:

或许这只是一个愚蠢的想法,这就是为什么我折腾它在这里:如何避免MSDTC?

我创建一个应用程序,使用一个数据库为基础,目前的数据(客户,文章,库存,发票代开,...)每年一个数据库存档数据(旧发票,库存移动......)。

只有一个讨厌的小问题:MSDTC。大多数交易只接触一个数据库,但有几个接触当前数据库和一个存档年份。由于所有数据库均在同一台服务器上进行,因此这可能是跨两个数据库的简单事务。

然而,LINQ到实体迫使我为每个数据库创建一个单独的连接,并在这里踢MSDTC,要求一)要安装b)不拖慢整个事情。

烦人!

是不是有什么办法可以得到两个ADO.Net实体框架模型,使用相同的连接,两者都具有自己当前的数据库?

我已经尝试过specify the database in the EF Schema, but EF does not like this and blocks it.

很烦人。也许我应该把所有的表格移动到一个数据库中,但是当试图分离备份和加速的数据时,这会让我们感到痛苦。

+0

如果您需要跨年做查询,一个数据库,每一年可能不是一个好办法。如何在一个数据库中分隔表格,或者更简单地使用分区。 http://msdn.microsoft.com/en-us/library/ms345146.aspx因为它需要SQL Server企业版可能增加$ 30- $ 50K取决于您的处理器配置,如果你尚未使用 – bobince 2009-03-04 16:29:25

尝试在连接上调用ChangeDatabase。如果您使用多个连接,MSDTC将始终参与其中。即使是一个数据库。因此,我建议始终保持一个连接并通过此方法更改数据库。

希望这会有所帮助。