问题标签 [nhibernate-criteria]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
9929 浏览

c# - 与 NHibernate 和标准联合?

与 NHibernate 和标准联合:

是否可以在 Criteria 或 QueryOver 中使用?如果没有,是否有任何其他方法可以在同一查询中实现两个结果的联合?

0 投票
1 回答
273 浏览

nhibernate - 反转NHibernate查询的逻辑

我构建了以下查询,使用NHibernate它将给我一个MenuView包含给定页面(由页面 id 引用)的项目集合。

这很好用;但是,现在我想做相反的事情:我想查询所有包含具有指定 ID 的页面的可编辑菜单对象。到目前为止,我还没有找到解决方案。我原以为对上述查询的 pages 部分进行简单的反转就足以导致:

但是,这会导致以下 SQL:

仍然返回包含 id 为 8 的页面的菜单项的结果。为什么这种简单的逻辑反转在代码方面不那么简单

[更新] 接受 Firo 的建议,将建议的查询更改为;

现在生成如下sql语句;

)

乍一看,这似乎正是我想要的,但遗憾的是(可能是由于我对连接的理解不深)仍然没有完全返回我想要的。鉴于下表

菜单

菜单表的镜头

然后是PagesInMenu的连接表(带有 WHERE PageID = 1 的 WHERE 子句)

显示连接表

我们可以看到菜单 5 和 6 中没有引用 id 为 1 的页面。我希望有问题的查询只返回一行,这将是 ID 为 5 的菜单的 ID、名称和描述,因为这是仅包含第 1 页且编辑的菜单

相反,新查询返回;

在此处输入图像描述

我已经划掉了所有返回但不应该的行。这里发生了什么 !?

0 投票
1 回答
943 浏览

nhibernate - nhibernate - 通过中间表的标准

我有一个桌子团队,我有一个桌子位置。每个团队可以有多个位置,每个位置可以有多个团队,所以它是多对多的关系。

在数据库中创建此场景时,将有 3 个表,Team、Location 和 TeamLocation 来保存多对多链接。

我已经使用以下方法在 nhibernate 中映射了它... Team.hbm.xml

和 Location.hbm.xml

现在我正在尝试使用标准 API 检索基于特定位置的所有团队,但我无法......

等效的sql...

并在 asp.net 代码中

这抛出和错误..

我看不出来:(

纠正我..谢谢!

0 投票
3 回答
4905 浏览

nhibernate - 如何使用 NHibernate 查询外键列,而不检索相关实体

假设我有两个课程:ParentChild. AParent有一个属性Children,它当然是Child对象的集合。

Child没有ParentId财产。它确实有一个Parent属性。

所以,我的 NHibernate 映射Child包括:

我的Parent映射包括:

现在这就是我想做的事情:我想获得所有Child具有特定ParentId. 我知道我可以先获取Parent然后返回它的Children属性。但是如果我想Child直接查询表呢?

如果它是一个映射属性(例如,Name),我可以使用 NHibernate 的标准,但在这种情况下,ParentId不是映射的。

我尝试使用类似的东西:

但这不起作用。我求助于使用 SQLCriterion(如此所述),但一位朋友/同事让我认为必须有更好的方法。

有任何想法吗?有预测的东西和Restrictions.EqProperty

0 投票
1 回答
134 浏览

sql-server - 是否可以让 Nhibernate 查询生成 columnName<>'value' 而不是(columnName='value')?)

是否可以让 Nhibernate 查询生成具有 columnName<>'value' 而不是(columnName='value')的 Sql?

有人告诉我,使用 not() 可能会对 <> 产生 Sql 性能问题。

通常我会这样写我的查询......

这导致

更新

这个问题表明,以一种或另一种方式编码不再存在任何性能问题

在 SQL Server 中,not(columnName='value') 和 columnName<>'value' 之间有什么区别吗?

0 投票
1 回答
211 浏览

nhibernate - NHibernate 默认子集合和标准策略

在域模型中,有许多实体的Status枚举值为ActiveDeleted

我正在寻找有关如何处理的推荐方法的文档和建议:

  1. 获取具有Status枚举的实体集合时,排除Deleted默认设置为值的实体(可根据具体情况覆盖)

  2. 获取实体的子集合时,默认情况下会排除默认设置为值的实体Deleted

总而言之,我实际上希望保留与具有Status枚举属性的实体相关的所有数据,但要排除默认值为Deletedfor status 的那些数据。

任何指向正确方向的指针都非常感谢。

0 投票
1 回答
885 浏览

nhibernate - 使用 Nhibernate 我想使用用户名和密码登录

我喜欢人们帮助我了解表 TUser 中存在用户名和密码详细信息。我的任务是如何检查我何时使用 username:admin 和 password:admin 登录并按下登录按钮它使用数据库搜索然后我可以使用 Nhibernate 登录内部。请帮助我。这是下面的代码

0 投票
0 回答
448 浏览

nhibernate - NHibernate 多个连接子类并使用条件重复列名

假设我们有这个实体结构:

在基类 Document 中,我们有字段IdNameCreateDate。在加入的子类 DocumentA 中,我们有字段BookPages。在 DocumentB 中,我们有MagazinePages

所以问题是当我尝试使用标准获取记录时:

因此,如果我们在selectColumns中有两个Pages列,NHibernate 只会从第一个中选择数据。事实上,它甚至会生成这样的 SQL 查询

有谁知道如何使用 Criteria 解决我的问题?顺便说一句,我没有选择更改此结构的选项,在此系统中,用户可以定义自己的类和嵌套类。

0 投票
2 回答
2900 浏览

nhibernate - NHibernate 将字符串参数转换为 nvarchar 而不是 varchar。我怎样才能阻止这个?

我有一个映射到视图的类,并且正在搜索名字和姓氏以搜索患者记录。该视图最终会查看患者表上的名字和姓氏字段(可能还有其他字段,具体取决于输入)。当条件转换为 SQL 时,它会将我的字符串作为 nvarchar 参数输入。我已经在我的映射中使用了 type="AnsiString" 和 length="50" ,但它仍然将它们转换为 nvarchar,这导致我的查询性能受到影响。

SQL Profiler 将输出 SQL 显示为使用 nvarchar 参数,并在我的所有字符串前面加上 N 以强制转换它们。

我错过了什么吗?在标准或映射上还有什么需要做的吗?此外,参数的长度也不是恒定的 50。我正在使用 NHibernate 2.1。

0 投票
1 回答
727 浏览

sql-server - 如何使用 NHibernate 的 Criterion API 指定位掩码/位域 WHERE 子句

可能重复:
如何查询在 NHibernate 中存储为枚举的标志

我有三张桌子 - Recipient, Message,MessageType

消息类型如下所示:

Recipient包含用作位域的整数列;收件人可以选择他们想要接收的消息类型;如果收件人想要接收时事通讯和特别优惠,我们会将其位域设置为(2 ^ 2) | (2 ^ 3)

Message包含对MessageTypeId和计算列的引用,MessageTypeBitFlag定义为POWER(2, MessageTypeId)

我用 SQL 表示的查询类似于:

通过对 bitfield 和 bitflag 列进行按位与操作,很容易只选择特定收件人感兴趣的消息。

问题是,我不是在 SQL 中执行此操作 - 我需要将此作为附加选项添加到基于 NHibernate Criteria API 构建的相当丰富的系统中。

有没有办法通过 NHibernate API 来表达这个标准 - 使用 API 或通过向现有标准添加 SQL/HQL 子句?