Критерии NHibernate Найти по идентификатору - PullRequest
1 голос
/ 30 апреля 2010

У меня есть 2 объекта:

public class Authority : Entity
{
    [NotNull, NotEmpty]
    public virtual string Name { get; set; }

    [NotNull]
    public virtual AuthorityType Type { get; set; }

}

public class AuthorityType : Entity
{
    [NotNull, NotEmpty]
    public virtual string Name { get; set; }

    public virtual string Description { get; set; }
}

Теперь я хочу найти все права доступа к хранилищу по типу. Я пытался сделать это так:

    public IList<Authority> GetAuthoritiesByType(int id)
    {
        ICriteria criteria = Session.CreateCriteria(typeof (Authority));
        criteria.Add(Restrictions.Eq("Type.Id", id));
        IList<Authority> authorities = criteria.List<Authority>();
        return authorities;            
    }

Однако я получаю сообщение об ошибке, что с SQL что-то не так («не удалось выполнить запрос». Исключением является следующее: {«Неверное имя столбца« TypeFk ». \ R \ nНеверное имя столбца« TypeFk ». «}

Любой совет? Любой другой подход?

С наилучшими пожеланиями, Andrew

1 Ответ

3 голосов
/ 30 апреля 2010

Похоже, ваш файл сопоставления для объекта Authority связывает свойство Type со столбцом с именем TypeFk в любой таблице, в которую отображается объект Authority. По какой-то причине этого столбца нет.

Также может быть полезно просмотреть файлы сопоставления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...