Я использую этот запрос hql для своих фильтров. Запрос отлично работает за исключением ширины (строки).Задача запроса HQL
Вот запрос,
public IList<ColorGroup> GetDistinctColorGroups(int typeID, int finishID, string width)
{
string queryStr = "Select distinct c from ColorGroup c inner join c.Products p " +
"where p.ShowOnline = 1 ";
if (typeID > 0)
queryStr += " and p.ProductType.ID = " + typeID;
if (finishID > 0)
queryStr += " and p.FinishGroup.ID = " + finishID;
if (width != "")
queryStr += " and p.Size.Width = " + width;
IList<ColorGroup> colors = NHibernateSession.CreateQuery(queryStr).List<ColorGroup>();
return colors;
}
ProductType и размер имеют одинаковые отображения и отношения.
Это ошибка;
NHibernate.QueryException: нелегальный синтаксис около коллекции: Размер [Выбрать отчетливые с из .Domain.ColorGroup с внутренним соединением c.Products р где p.ShowOnline = 1 и p.ProductType.ID = 1 и p.FinishGroup.ID = 5 и p.Size.Width = 4]
Любые идеи?
редактировать:
Btw в этом проекте я использовал этот Linq запрос, который действительно simmilar HQL один. Так что я не думаю, что это misstype или более фундаментально ошибка ..
colorOfSerie = (from p in products where p.Size.Width.Equals(width) select p.ColorGroup).Distinct().ToList<ColorGroup>();
Если вы удалите условие ширины, выполняется ли запрос i.e, ошибка не возникает? –
Да, он работает с этим. – ygit