2010-09-08 60 views
2

我有一個c#解決方案,包含3個項目 - 數據,WCF和UI。第一個是與db對話的類庫。它是通過第二個暴露出來的,它是WCF Service Library的類型 - 原因是它會在第三個項目中暴露 - Asp.net應用程序稱爲UI - 作爲一個指向dll的簡單svc。nHibernate + wcf + Isession

只是指出,我沒有使用Repository模式。

我需要有一個WCF調用ISession(類似於asp.net的Session-per-request方法)。任何人都可以分享一個簡單的解決方案嗎我不想爲此使用任何IOC。

回答

1

使用WcfOperationSessionContext(3.0新增)。

綁定後,您的數據類只需使用SessionFactory.GetCurrentSession()

+0

肯定會使用它。就在nh不再是alpha的時候! – IamDeveloper 2010-09-12 15:22:08

+0

如果這是一個問題,你可以從這裏複製類:https://nhibernate.svn.sourceforge.net/svnroot/nhibernate/trunk/nhibernate/src/NHibernate/Context/WcfOperationSessionContext.cs並在你的配置中使用它。 – 2010-09-12 15:43:56

1

每個服務調用都與唯一的OperationContext相關聯。 OperationContext沒有用於自定義對象的任何存儲,但是您可以實施extension。通過在MessageInspector中設置會話,您可以在集中的地方啓動每次呼叫的NHibernate會話,並在任何操作中訪問您的擴展上下文。

+0

這是相當WCF相關。在Data項目中使用這個ISession怎麼樣?我想保留它沒有任何WCF上下文相關的知識。 – IamDeveloper 2010-09-08 09:05:21

相關問題