- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
首先,这个问题有点奇怪。
我正在设计一个使用 ASP.NET MVC、SQL-Server 和 NHibernate 作为 ORM 的 Web 应用程序,在设计应用程序时我发现应用程序数据分为两部分(基于用户是男性还是女性)所以我有两个选项,当您选择其中一个时,所有应用程序数据将分为两部分(基于性别过滤器)
那么,有没有什么办法可以放一些“网”来根据这种过滤器从数据库中过滤数据?比如性别、位置或分支?如何使用这样的数据库级过滤器?并且不需要在我的应用程序中到处使用“... WHERE SEX=1”,只需要在数据库级别使用一个过滤器?
最佳答案
NHibernate 有一个描述为 18.1. NHibernate filters 的特性.
这是一个可以应用于类
或集合 级别的设置。文档中的示例:
<class name="MyClass" ...>
...
// this way we are saying, retrieve instances which meet the criteria
<filter name="myFilter" condition=":myFilterParam = MY_FILTERED_COLUMN"/>
</class>
或者,对于一个集合:
<set ...>
<filter name="myFilter" condition=":myFilterParam = MY_FILTERED_COLUMN"/>
</set>
在我们的实体/集合上设置此映射后,我们可以在 ISession 级别应用过滤器:
session.EnableFilter("myFilter").SetParameter("myFilterParam", "some-value");
现在使用此设置过滤任何映射对象
这里有一些例子:
我发现这些用于集合的过滤器是一项非常强大的功能。集合/字典可以包含一些“用户”相关数据(例如按位置、语言、角色等过滤)
另一种方法可能只是将过滤器添加到查询 ala:.Add(ICriterion)
(Criteria query) 或 .Where(expression)
(QueryOver)。这可以在包装 DAL 的 AOP 过滤器中完成。
关于asp.net-mvc - 如何分配数据层级过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20933800/
我正在处理这个线程:HierarchyID:HierarchyID: Get all descendants for a list of parents 我有一个使用 HierarchyID 的表,我
我是一名优秀的程序员,十分优秀!