2010-07-08 36 views
0

我想讓我的用戶創建要在nhibernate.Linq查詢中執行的規格。用戶生成的規格

可能嗎?我要求用戶寫一個查詢字符串(HQL我想),因此它將是可序列化的,並且在組合框中,用戶可以將其應用於當前結果

+0

所以用戶指定的查詢和你的應用程序來執行呢?除了限制訪問某些用戶之外,是否還有任何安全限制要實施? – apollodude217 2010-07-08 14:14:22

回答

1

Linq表達式不可序列化。

另一方面,HQL只是一個像SQL這樣的字符串,所以這會起作用。

但是你必須非常信任你的用戶,因爲沒有什麼能夠阻止他輸入「DELETE TheMostImportantEntity WHERE 1 = 1」。其他

+0

是的,這是真的。 另一個問題是用戶不知道確切的類屬性名稱,因此創建查詢表達式並不那麼容易。 我會用預編譯規格的組合框去選擇,暫時。 – 2010-07-08 14:36:59