gpt4 book ai didi

asp.net-mvc - 如何分配数据层级过滤器

转载 作者:搜寻专家 更新时间:2023-10-30 23:10:40 25 4
gpt4 key购买 nike

首先,这个问题有点奇怪。

我正在设计一个使用 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com