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