首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NHibernate加入与约束准则

NHibernate加入与约束准则
EN

Stack Overflow用户
提问于 2010-01-27 15:47:14
回答 1查看 5.4K关注 0票数 0

我试图写一个同时有效地加入和限制的NHibernate标准。我的数据库看起来像这样..。

案例-> CustomerProducts <-客户案例-> CaseStatuses

每个案例都与一个客户产品相关联(许多情况到一个产品)。

每个客户都有许多客户产品(一个客户有多个客户产品)。

另外,每个案件都有一个案件状态(从一个案件到多个案件)。

这已经用XML文件进行了映射,并且用Sets<>在CustomerProduct映射中解决了案例和客户(通过客户产品)之间的许多到多个解析,这意味着CustomerProduct实体具有以下设置:

客户

案例

然后,我创建一个输入为“Case”的标准。我需要申请的标准是..。

  1. 各种状态代码中的状态。这和.有关。 ( criteria.Add(Restrictions.In("CaseStatus.CaseStatusId",状态);
  2. 现在,我只需要为特定的客户Id选择案例。我试过..。 ( criteria.Add("CustomerProduct.Customer.CustomerId",customerId);

这不起作用,NHibernate告诉我它不能解析到CustomerProduct.Customer.CustomerId的映射。

Case具有CustomerProduct对象的属性。

CustomerProduct具有Customer对象的属性。

客户拥有CustomerId的属性。

知道为什么不行吗?

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-01-27 16:02:37

我认为您需要为CustomerProduct.Customer创建一个别名:

代码语言:javascript
复制
criteria.CreateAlias("CustomerProduct", "customerProduct");
criteria.CreateAlias("customerProduct.Customer", "customer");
criteria.Add(Restrictions.Eq("customer.CustomerId", customerId));

我很惊讶“身份限制”没有化名。下面是一个关于使用条件API执行连接查询的好文章

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2148277

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档