簡體   English   中英

使用Autofac的InstancePerRequest的不同上下文

[英]Different contexts with InstancePerRequest using Autofac

我在我的項目(Web應用程序)中將Autofac用於DI。 我有一個LINQ表達式,它在同一個DB中連接了2個不同的表,就像這樣(All()只是dbSet.AsQueryable()的包裝)

from repo1 in repository1.All()
join repo2 in repository2.All()
     on repo1.SomeField = repo2.SomeField
.....

我正在使用InstancePerRequest()在容器構建器中注冊我的組件(repo1和repo2)。

當我在LINQ代碼上執行代碼時,拋出以下錯誤:“指定的LINQ表達式包含對與不同上下文關聯的查詢的引用。”

我認為dbContext在通過InstancePerRequest()注冊的組件之間是共享的(按請求)。

有什么想法嗎?

謝謝!

您不顯示“存儲庫”構造函​​數。 如果你想讓它正常工作,您需要注冊您DbContextPerRequest還有,讓你的“資源庫”得到它注入的構造函數的參數。 這樣就可以了。 沒有隱含的假設,即應使用相同的生命周期實例化已注冊PerRequest的組件的依賴關系。 默認情況下,每個組件都按依賴關系進行注冊。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM