Как обновить объект с помощью nhibernate + беглый nhibernate? - PullRequest
1 голос
/ 23 июля 2011

Я делаю запрос через nhibernate, чтобы получить запись из базы данных.

var result  = session.Query<TableA>().Where(x => x.Id == 10).FirstOrDefault();
result.Where = "hi";
session.Update(result)
session.Commit();

Итак, я получаю результат обратно, обновляю свойство и пытаюсь его обновить, а затем зафиксировать. Это приведет к сбою, поскольку у меня есть собственный ключ к таблице B (таблица A может иметь одну таблицу B, а таблица B - много таблиц A)

Так что эта ссылка не может быть нулевой. Поэтому, когда он пытается сделать обновление, он падает.

Так что я должен сделать

       var result  = session.Query<TableA>().Where(x => x.Id == 10).FirstOrDefault();
        result.Where = "hi";
        result.TableB = session.Load<TableB>(1);
        session.Update(result)
    session.Commit();

Тогда он счастлив.

Как я могу сделать обновление, не загружая TableB?

1 Ответ

1 голос
/ 23 июля 2011

Установите значение Обновления сопоставления свойства TableB в false. Я не уверен, как бы вы сделали это с помощью Fluent NHibernate, но похоже, что метод SetAttribute сделает это за вас.

Что-то вроде: .SetAttribute ("update", "false");

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