2
我有兩個類NHibernate的3.2 QueryOver不同的屬性
public class News
{
public virtual int Id { get; protected set; }
public virtual string Topic { get; set; }
public virtual Category Category { get; set; }
}
public class Category
{
public virtual int Id { get; protected set; }
public virtual string Name { get; set; }
public virtual ISet<News> News { get; set; }
}
和映射
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="News" namespace="NewsManagement.Models">
<class name="News" table="News">
<id name="Id">
<generator class="native" />
</id>
<property name="Date" not-null="true" />
<many-to-one name="Category" fetch="join" column="CategoryId" class="Category, NHibernateManyToOne" not-null="true"/>
</class>
</hibernate-mapping>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="News" namespace="NewsManagement.Models">
<class name="Category" table="Categories">
<id name="Id" column="Id">
<generator class="native" />
</id>
<set name="News" fetch="join" cascade="all-delete-orphan">
<key column="CategoryId" />
<one-to-many class="News, NHibernateOneToMany" />
</set>
</class>
</hibernate-mapping>
,我想採取分頁消息,通過其類別的名稱排序。 下面是該查詢:
Session.QueryOver<News>().JoinQueryOver(x => x.Category).OrderBy(x => x.Name).Asc.Skip(pageNumber*pageSize).Take(pageSize).List<News>();
但結果我把我的列表中很多重複的消息。我認爲這可能是因爲在映射中啓用並在查詢中使用的連接。那麼,有沒有解決方案如何通過一個屬性或另一種方式來避免這個問題?
但我不能申請'鮮明(新MyEqualityComparer())'無處除了'名單()'。如果我將'Distinct'應用於此,它將不會是我需要的,因爲它會從列表中刪除它,因爲我知道 –
2011-12-27 17:56:43
因此,將它應用於'.List()' –
2011-12-27 17:57:21
之後,但不是以適當的方式。例如,一個頁面應該包含5條記錄,但是在清單上它只有2個。所以我需要以某種方式將不同的清單應用於清單 – 2011-12-27 18:03:59