2009-05-01 45 views
2

我正在尋找混淆使用NHibernate編寫的數據訪問層。問題是,映射是在XML文件中完成的,這些文件作爲資源嵌入到類庫中 - 這意味着映射文本是明文的。使基於Nhibernate的DAL模糊友好

兩個可能的解決方案是使用方法:1。 映射NHibernate的屬性(NHMA)到decorat映射(所以,模糊化的代碼運行時,NHibernate的將其映射到模糊的類名)醚:實體 2.流利的NHibernate(再次,映射是在代碼中,所以混淆不應該成爲一個問題 - 我認爲)。

現在,如果我們使用HQL執行查詢,這兩種解決方案都不起作用 - 因爲查詢會引用原始類和字段/屬性名稱!

有沒有解決方案呢?我們可以在NHMA/Fluent映射中使用別名/屬性名嗎?

如果我們將HQL查詢轉換爲使用NHibernate Criteria API,Criteria API會以某種方式提供幫助嗎?

(我知道混淆的好處和缺點/無用以及它的用途 - 所以這個問題根本不是要討論這個問題。換句話說,請不要擔心討論'爲什麼'我想要做這個!)

謝謝,

克里希納。

回答

1

我能想到的唯一解決方案是使用Linq到NHibernate。目前它是NHibernate Contrib Project的一部分,並不完全穩定。它將成爲NHibernate 2.1版本的一部分,目前該版本具有「Alpha」狀態,並且應該很快穩定相當

對於映射我會使用流利NHibernate的。既然Linq和Fluent NHibernate都使用Lambda表達式,它應該使用模糊處理。

0

NHibernate Configuration對象非常靈活。通過調用:

var lConfig = new Configuration(); 
lConfig.AddXmlString("whatever xml with config"); 

您可以從任何來源添加字符串。這意味着您可以在彙編中對您的xmls進行加密,並在配置NH時進行解密。

但是,如果您剛剛混淆後,我認爲流利NH是您的首選工具。