我的解決方案,我有以下項目映射SQL視圖與NHibernate和外鍵
MySystem.Core
MySystem.Core.Data
MySystem.MyAudit1.Core
MySystem.MyAudit1.Core.Data
MySystem.MyAudit2.Core
MySystem.MyAudit2.Core.Data
審計項目的數量可能會增長到20左右
的審計項目都需要一個「組織「參考數據表。我的計劃是在Core項目中創建一個「主」組織表,而不是在所有審計項目中重複20次同一個參考數據表並儘量保持同步。
這將包含所有組織的代碼和說明。然後,在每個特定的審計項目都僅包含相關的審計,但沒有說明該組織代碼的OrganisationCode表,並在審覈數據庫從核心組織的表中查找說明一個觀點如下:
CREATE VIEW Organisation AS
SELECT d.OrganisationCodeId as 'OrganisationId', d.Code, a.[Description]
FROM MyAudit1.dbo.OrganisationCode d
INNER JOIN [Core].dbo.OrganisationCode a ON d.Code = a.Code
這將意味着,如果組織的描述改變他們可以在一個地方進行更新,並在所有審計反映出來。
但是,因爲你不能對SQL中查看外鍵我已經建立了審計數據庫中的表OrganisationCode和取其他表之間的外鍵需要它們。
正如我發現,這當然會導致NHibernate的嘗試,並返回OrganisationCode 表,而不是組織視圖,並導致我的SessionFactory創建摔倒例如NHibernate在OrganisationCode表尋找OrganisationId。
有一個簡單的辦法解決這將讓我有參考數據的核心項目,可在孩子使用單一描述查找技術項目
是否遍佈多個數據庫的審計表? – Firo 2012-02-23 10:43:03