如何解决NHibernate:如何通过引用实体的属性对集合进行排序
|| 我想按Retailer.Name对CampaignRetailers进行排序。但是,零售商是CampaignRetailers上的参考实体。我试过了order-by=\"Retailer.Name\"
。这种分类可能吗?
<class name=\"Campaign\" table=\"Campaign\">
<id name=\"Id\">
<generator class=\"identity\"/>
</id>
<set name=\"CampaignRetailers\" table=\"CampaignRetailers\"
cascade=\"all-delete-orphan\" inverse=\"true\" order-by=\"Retailer.Name\">
<key column=\"CampaignId\" not-null=\"true\" />
<one-to-many class=\"CampaignRetailer\" />
</set>
</class>
<class name=\"CampaignRetailer\" table=\"CampaignRetailers\">
<id name=\"Id\">
<generator class=\"identity\"/>
</id>
<many-to-one name=\"Campaign\" column=\"CampaignId\" />
<many-to-one name=\"Retailer\" column=\"RetailerId\" />
</class>
解决方法
这是不可能的。
请改用客户端临时排序。例如:
sortedCampaignRetailers = campaign.CampaignRetailers
.OrderBy(x => x.Retailer.Name);
, 我通常改为使用,并且通过使用如下所示的映射,使用order-命令对集合进行排序。
<bag name=\"CampaignRetailers\" inverse=\"true\" cascade=\"delete\" order-by=\"Name\">
<key column=\"CampaignId\"/>
<one-to-many class=\"CampaignRetailer\"/>
</bag>
其中Name是CampaignRetailers的属性。
这对我有用。
我也希望对你有帮助。
, 以下应对此适用(NH 3.x +):
var retailers = Session.QueryOver<CampaignRetailer>()
.JoinQueryOver(x => x.Retailer)
.OrderBy(x => x.Name).Asc
.List<CampaignRetailer>();
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。