2

我有一种情况,我使用 SQL Server 事务复制从我的主数据库到我的故障转移数据库。我有一个主站点,我的故障转移网站正在使用我的故障转移数据库。

两个网站(使用实体框架)是相同的(希望数据库也是如此)。

我的问题是,如果我的复制处于活动状态,我的故障转移网站上的某些操作会崩溃。一旦我停用我的复制,操作就会正常进行。

我的猜测是当暴露于复制时,我的故障转移网站的 EntityModel 和数据库之间存在一些并发问题。

有没有人遇到过类似的问题?任何有事务复制+实体框架经验的人?

这是我得到的例外:

at System.Data.Mapping.Update.Internal.UpdateTranslator.Update(IEntityStateManager stateManager, IEntityAdapter adapter) 
at System.Data.EntityClient.EntityAdapter.Update(IEntityStateManager entityCache) 
at System.Data.Objects.ObjectContext.SaveChanges(SaveOptions options) 
at System.Data.Objects.ObjectContext.SaveChanges() 
at Library.XXXXEntities.Context_SavingChanges(Object sender, EventArgs e) 
in C:\SVN\Branches\Prod - 1.68.7\Library\LINQ\Audit.cs:line 38 
at System.Data.Objects.ObjectContext.OnSavingChanges() 
at System.Data.Objects.ObjectContext.SaveChanges(SaveOptions options) 
at System.Data.Objects.ObjectContext.SaveChanges() at Library.Provider.Save() 
in C:\SVN\Branches\Prod - 1.68.7\Library\XXXX.Provider.cs:line 57 
at XXXX.mnuExportGeneric.RecreatePositionsToBeUnique() 
at XXXX.mnuExportGeneric.Export(Int32 programId, DirectoryInfo directoryDestination, Boolean exportInventory, Int32 CurrencyListID, Int32 configurationId, Boolean subFolder) 
at XXXX.mnuExport.Export(Int32 ProgramId, String TempExportFolder, String ExportFolder, TreeView treeViewErreurs, Int32 CurrencyListID, Boolean exportInventory, Int32[] configurationsId) 

映射似乎存在问题,但仅当事务复制处于活动状态时。

更新:我已经完全脱离了我的应用程序环境,当复制“存在”时,我只是尝试在我的故障转移数据库的表中插入一个新行,而不仅仅是活动接缝是非法的。明天我将尝试完全删除复制......或更剧烈的变化......

谢谢!

4

1 回答 1

1

这可能不是 EF 的问题,而是您的复制设置的更多问题。

SQL Server 确实允许在任何节点上进行更改的复制,但这需要企业版,请参阅:http ://technet.microsoft.com/en-us/library/ms151196.aspx

您可能正在尝试更新只读副本。

于 2011-04-26T21:01:14.340 回答