Как я могу написать HQL, чтобы получить это? - PullRequest
1 голос
/ 03 сентября 2010

У меня есть класс под названием Континент и Страна.

Класс Континента имеет коллекцию Country:

    private ISet<Country> _countries;
    public virtual ISet<Country> Countries
    {
        get { return _countries; }
        set { _countries = value; }
    }

Я хочу написать HQL-запрос, который получит все континенты, в которых есть страны хотя бы одной страны с CountryName = "A"

Класс моей страны имеет свойство:

    public virtual string CountryName { get; set; }

И у меня есть файлы .hbm.xml, которые содержат информацию об отношениях Db для объектов Continent и Country.

Как мне написать свой HQL здесь:

public IList<Continent> GetContinentsWithCountriesStartingWithLetter(char letter)
        {

            string query = ":letter"; //The query to be used
            return
                _session
                    .CreateQuery(query)
                    .SetString("letter", letter.ToString())
                    .List<Continent>();
        }

Спасибо!

1 Ответ

3 голосов
/ 03 сентября 2010
return _session
    .CreateQuery("from continent in Continent inner join continent.Countries country where country.Name like :letter")
    .SetString("letter", letter)
    .List<Continent>();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...