Nhibernate не загружает значение первичного ключа - PullRequest
0 голосов
/ 25 августа 2010

Я использую Nhibernate версии 2.2 для сопоставления классов с таблицами в моем проекте.Ниже приведены мой файл класса и файл сопоставления

public abstract class BasicUser
{        
    public virtual int RowID { get; set; }

    public virtual string DisplayName { get; set; }

    public BasicUser()
    {
    }
}

<class name="BasicUser" table="UserAccounts"  >
<id column="RowID" type="Int32">
  <generator class="native" />
</id>
<property name="DisplayName" type="String" length="25" />
<!-- More mapping members -->
</class>

. Проблема, с которой я сейчас сталкиваюсь, заключается в том, что всякий раз, когда я сохраняю объект, он сохраняется с автоматически сгенерированным RowID для объекта.Но когда я запрашиваю объект из базы данных позднее (используя какое-то другое свойство в IQuery), я получаю объект с RowID, всегда равным 0. Не могли бы вы, пожалуйста, подскажите, как получить объект с его текущим RowID.Спасибо.

Ответы [ 2 ]

1 голос
/ 26 августа 2010

Вы должны установить значение атрибута Name для Id следующим образом:

<class name="BasicUser" table="UserAccounts"  >
<id column="RowID" type="Int32" Name="RowID">
  <generator class="native" />
</id>
<property name="DisplayName" type="String" length="25" />
<!-- More mapping members -->
</class>
0 голосов
/ 26 августа 2010

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

BasicUser user = null;
using (ISession session = sessionFactory.OpenSession())
{
    IQuery query = session.CreateQuery("From BasicUser user where user.Email=?");
    query.SetString(0, email);
    query.SetMaxResults(1);
    IList<BasicUser> results = query.List<BasicUser>();
    if (results.Count > 0)
        user = results[0];
}
return user;

этот код работает, и я получаю все детали для объекта BasicUser, за исключением его идентификатора строки.

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