У меня есть класс с именем Показать одно из свойств "Страна" - это ссылка на другую таблицу.
Показать класс
public class Show
{
public virtual int ID { get; set; }
public virtual Country CountryOrigin { get; set; }
public virtual string EnglishName { get; set; }
}
Кантри Класс
public class Country
{
public virtual int ID { get; set; }
public virtual string Name { get; set; }
}
У меня все это сопоставлено и работает, но сейчас я хочу получить более конкретные результаты. Я использовал критерии api, чтобы получить все данные и отсортировать их, но теперь я хочу получать шоу только по названию страны. Вот то, что я думал, что будет работать, но по существу не работает.
public IList<Show> AllShowsByCountry(string countryName)
{
IList<Show> shows;
shows = _session.CreateCriteria(typeof(Show))
.Add(Restrictions.Eq("CountryOrigin.Name", "China" ))
.AddOrder(Order.Asc("EnglishName"))
.List<Show>();
return shows;
}
Я думал, что первая часть ограничения может работать аналогично HQL, и вы можете использовать объекты.
1) Вопрос, который я предполагаю, состоит в том, что я неправильно понимаю, как работает HQL или критерии, или оба?
2) Кроме того, как бы вы сделали это правильно, используя критерии?
Обновление
Вот ошибка, которую я получаю
could not resolve property: CountryOrigin.Name of: Entities.Show