Нужна помощь с удалением записи в asp.net с помощью Nhibernate - PullRequest
1 голос
/ 07 июня 2011

У меня есть этот код для удаления контакта из моей базы данных, и у меня появляется эта ошибка: No persister for: System.Int32

protected void Button1_Click(object sender, EventArgs e)
{

  NHibernate.Cfg.Configuration config = new NHibernate.Cfg.Configuration();

  config.AddAssembly("ContactDomain");

  NHibernate.ISessionFactory factory = config.BuildSessionFactory();
  NHibernate.ISession session = factory.OpenSession();

  NHibernate.ITransaction transaction = session.BeginTransaction();

  Contact contact = new Contact();
  int contactid = 1;

  session.Delete(contactid);

  transaction.Commit();
  session.Close();
}

У меня есть этот код для создания нового контакта, и он работает:

protected void btnSaveContact_Click(object sender, EventArgs e)  
{
   NHibernate.Cfg.Configuration config = new NHibernate.Cfg.Configuration();

   config.AddAssembly("ContactDomain");

   NHibernate.ISessionFactory factory = config.BuildSessionFactory();
   NHibernate.ISession session = factory.OpenSession();

   NHibernate.ITransaction transaction = session.BeginTransaction();

   Contact contact = new Contact();

   contact.FirstName = txtFirstName.Text;
   contact.LastName = txtLastName.Text;
   contact.Email = txtEmail.Text;
   contact.Telephone = txtTelephone.Text;

   session.Save(contact);
   transaction.Commit();
   session.Close();
}

Ответы [ 2 ]

2 голосов
/ 07 июня 2011

Если вы хотите удалить только класс сущностей, используйте метод Load вместо метода Get.Получить метод make call to database, если сущность не существует в кеше первого уровня.Метод загрузки создает неинициализированный прокси-объект, который фактически не попадает в базу данных, пока вы не вызовете свойство / метод объекта.

Contact contact=session.Load<Contact>(1);
session.Delete(contact);
0 голосов
/ 07 июня 2011

Вы не можете удалить объект, который не был сохранен!попробуйте:

Contact contact = new Contact();
int contactid = 1; //are you managing manually entity id?


session.SaveOrUpdate(contact);

session.Delete(contact);

обновление

Contact contact=session.Get<Contact>(1);

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