【问题标题】:NHibernate Query Over to sort IList in EntityNHibernate Query Over 对实体中的 IList 进行排序
【发布时间】:2015-03-31 11:42:56
【问题描述】:

我有两个实体

      public class ProductEntity
        {
         public virtual Guid Id { get; set; }
         public virtual string Name { get; set; }
         public virtual IList<PriceScheduleEntity> PriceSchedules { get; set; }  
        }
        public class PriceScheduleEntity
        {
         public virtual Guid Id { get; set; }
         public virtual DateTime Date{get;set;}
         public virtual ProductEntity Product { get; set; }
        }

已完成一对多映射。
一种产品可能有多个价格表

当我进行查询时

    IList<ProductEntity> entityList = NHSession.QueryOver<ProductEntity>()
            .Where(x => x.Name.IsLike("%" + matchString + "%"))
            .OrderBy(x => x.Name).Asc.List();

它为我提供了添加时的价格表。
我希望它们按生效日期排序。
请帮我查询。

【问题讨论】:

  • 您是否要按PriceScheduleEntity.DateProductEntity 进行排序?
  • 因为一个ProductEntity 有很多PriceScheduleEntitys,你想按哪一个排序?
  • 对于每个 productentity,priceScheduleentity 列表应该按照日期排序

标签: c# nhibernate fluent-nhibernate queryover


【解决方案1】:

在映射中(例如 FLuentNHibernate 映射)

HasMany(x => x.PriceSchedules).OrderBy(s => s.Date)

您应该在代码中进行有序插入,这样在代码中添加项目后它就不会破坏此排序合同。

【讨论】:

    猜你喜欢
    • 2023-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-14
    • 2012-01-05
    • 2018-07-21
    相关资源
    最近更新 更多