用户生成的规格
我想让我的用户创建要在 nhibernate.Linq 查询中执行的规范。
是否可以?我要求用户编写一个查询字符串(我想是 HQL),这样它将是可序列化的,并且在组合框中用户可以将其应用于当前结果
I want to let my users create specifications to be executed in a nhibernate.Linq query.
Is it possible? I ask the user to write a query string (HQL I suppose) so it will be serializable and in a combobox the user can apply it to current results
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
Linq 表达式不可序列化。
另一方面,HQL 只是一个像 SQL 一样的字符串,所以这样就可以了。
但您必须真正信任您的用户,因为没有什么可以阻止他输入“DELETE TheMostImportantEntity WHERE 1=1”。
Linq expressions are not serializable.
HQL, on the other hand, is just a string like SQL, so that would work.
But you have to really trust your user, as there is nothing stopping him from typing "DELETE TheMostImportantEntity WHERE 1=1".
另一种选择可能是使用 LINQ 动态查询库(请参阅此处的详细信息:http://weblogs.asp.net/scottgu/archive/2008/01/07/dynamic-linq-part-1-using- the-linq-dynamic-query-library.aspx )
One other option may be using the LINQ Dynamic Query Library (see details here: http://weblogs.asp.net/scottgu/archive/2008/01/07/dynamic-linq-part-1-using-the-linq-dynamic-query-library.aspx )