Я задал вопрос несколько дней назад Мой предыдущий вопрос .Таким образом, мой вопрос состоял в том, как упорядочить свойство правильного и четкого списка объектов.В то время я пытался добиться этого с помощью QueryOver
, но сейчас я использую Criterea API.И у меня снова равные рекорды.Это моя критика
var lst =
Session.CreateCriteria<News>().CreateAlias("Category", "c").AddOrder(Order.Asc("c.Name")).
SetFirstResult(pageSize * pageNumber).SetMaxResults(pageSize).List<News>();
, если я пытаюсь добавить отчетливую проекцию, я ничего не получаю.Просто исключение Unable to perform find[SQL: SQL not available]
.
var lst =
Session.CreateCriteria<News>().SetProjection(Projections.Distinct(Projections.Id())).CreateAlias("Category", "c").AddOrder(Order.Asc("c.Name")).
SetFirstResult(pageSize * pageNumber).SetMaxResults(pageSize).List<News>();
Классы
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>
Если нет способа получить то, что мне нужно, с помощью API criterea,Как я могу достичь необходимой функциональности?И это очень важно , что мне нужно получить отличный результат от базы, а не отличить его от клиента.