2010-10-15 66 views
0

我想讓EF4與nCommon 1.1一起提供DDO模式,如UnitOfWork,Specification,Repository。DDD - Enity Framework 4和ncommon

的NCommon配置線被投擲以下例外:發生

SynchronizationLockException

對象同步方法是從代碼不同步塊調用。

實際的代碼引發錯誤是:

.ConfigureData<EFConfiguration>(config => config.WithObjectContext(() => new CoreContext(connectionString))) 

這裏是我運行的代碼。

​​
+0

你在其他電腦上試過嗎?我在問,因爲上週我在使用Unity的項目中出現了類似的奇怪異常。代碼項目中沒有任何更改只停留在我的電腦上。我不得不從我的電腦中刪除整個解決方案,並刪除工作區形式的TFS。然後我創建了新的工作空間並下載瞭解決方案,並且工作。 – 2010-10-15 15:08:38

+0

感謝您的迴應,我已經在另一臺計算機上嘗試過,結果相同。 – 2010-10-18 02:33:56

回答

0

大衛,

你可以發佈異常的確切堆棧跟蹤?我懷疑在對象環境的構造過程中有什麼奇怪的事情發生。

在NCommon中,當您調用config.WithObjectContext(()=> new CoreContext(connectionString))時,它在內部創建上下文的實例以檢查其MetadataWorkSpace。如果你還可以提供一個repro示例,它可以幫助追蹤這個問題。

謝謝。

+0

發生System.Threading.SynchronizationLockException 消息=從未同步的代碼塊中調用對象同步方法。 Source = Microsoft.Practices.Unity StackOffice: at Microsoft.Practices.Unity.SynchronizedLifetimeManager.TryExit()in e:\ Builds \ Unity \ UnityTemp \ Compile \ Unity \ Unity \ Src \ Lifetime \ SynchronizedLifetimeManager.cs:line 109 InnerException: – 2010-10-20 00:49:42

+0

感謝您的幫助Ritesh,我最終刪除了該項目並從SVN重新加載,並且一切正常。 – 2010-10-27 00:02:43