Почему Fluent NHibernate с LINQ возвращает пустой список (с базой данных Oracle)? - PullRequest
1 голос
/ 18 февраля 2011

Я использую Fluent NHibernate (сборка NH3 - # 694) и LINQ для подключения к базе данных Oracle 11.Тем не менее, я не могу получить какие-либо данные из базы данных.Кажется, соединение работает, так как, если я изменяю свою регистрационную информацию, он выдает ошибку.

Я использую следующий код:

// Setup.

OracleClientConfiguration oracleClientConfiguration = 
    OracleClientConfiguration.Oracle10
        .ShowSql()
        .ConnectionString(connectionString);

_sessionFactory =
    Fluently.Configure()
        .Database(oracleClientConfiguration)
        .Mappings(m => m.FluentMappings
            .AddFromAssemblyOf<Feed>())
        .BuildSessionFactory();

// Query.

using (ISession session = _sessionFactory.OpenSession())
{
    IEnumerable<Category> categories = session.Query<Category>().ToList(); // Returns empty list.

    // And so on...
}

У меня есть карта дляТаблица категорий, но, что бы я там ни указывал, я все равно получаю пустой список.Кроме того, хотя я использую ShowSql (), я не вижу никаких выходов NHibernate в окне VS (2010).

Я использую TestDriven.NET (3.x) для запуска кода.Не выдается никаких ошибок, и Assert.NotEmpty (xUnit) в возвращенной коллекции завершается ошибкой (очевидно).

Я застрял, поскольку код работает и просто ничего не возвращает, и я не могу получить диагностическую информацию,Я даже пытался заставить NHibernate писать в log4net (TraceAppender), но, опять же, ничего.

Я был бы признателен за любые указатели - даже если это способ заставить меня сказать, что он пытается сделать.

Ответы [ 3 ]

3 голосов
/ 19 февраля 2011

Оказывается, что один из классов, использованных в отображении, был помечен как "внутренний".

1 голос
/ 08 сентября 2011

Проверьте xml-файлы Fluent NHibernate. Я сталкиваюсь с той же проблемой, и в конце концов я понимаю, что мои XML-файлы устарели.

1 голос
/ 18 февраля 2011

Можете ли вы попробовать заменить нижний блок кода на этот?

using (ISession session = _sessionFactory.OpenSession())
{
    IEnumerable<Category> categories = session.CreateCriteria(typeof(Category)).List<Category>();
}

На первый взгляд, я подозреваю, что проблема в том, что вы используете ToList() вместо List<T>(), но, пожалуйста, дайте мне знать, если это предложение поможет вам справиться с немедленной проблемой.

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