NHibernate: Получение "Неверное имя столбца 'ID'." когда я использую Criteria.List - PullRequest
1 голос
/ 04 июля 2010

Я использую NHibernate с Fluent и пытаюсь сделать что-то типа GetAll, используя Critera.List:

    public static List<T> GetAll(int pageIndex, int pageSize)
    {
        using (ISession session = Utils.OpenSession())
        {
            using (ITransaction transaction = session.BeginTransaction())
            {
                ICriteria criteria = session.CreateCriteria(typeof(T));
                criteria.SetFirstResult(pageIndex * pageSize);
                if (pageSize > 0)
                {
                    criteria.SetMaxResults(pageSize);
                }
                return criteria.List<T>() as List<T>;
            }
        }
    }

Моя карта выглядит так:

public class GenreMap: ClassMap<Genre>
{
    public GenreMap()
    {
        Table("Genres");
        Id(x => x.ID);
            //.GeneratedBy.Identity();
        Map(x => x.Name, "GenreName")
            .Length(1000);
    }
}

Основной PK / ID - GenreID (не ID), но я правильно настроил карту (или, как я полагаю).

Так почему я получаю эту ошибку?

1 Ответ

3 голосов
/ 04 июля 2010

Вам необходимо ввести имя столбца для идентификатора на карте:

Id(x => x.ID, "GenreID"); 

В противном случае NHibernate будет считать, что имя столбца совпадает с именем свойства, чего в данном случае нет.

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