nhibernate для сохранения только необходимых свойств

#nhibernate #nhibernate-mapping

#nhibernate #nhibernate-сопоставление

Вопрос:

Я использую NHibernate 2.2 для работы с базой данных и недавно столкнулся с проблемой. У меня есть класс под названием PrescDrugItem, который показан ниже

 public class PrescDrugItem
{
    public virtual int ItemNumber { get; set; }

    [DataMember]
    public virtual int AmountIssued { get; set; }

    [DataMember]
    public virtual string TimePeriod { get; set; }
}
  

ниже приведен файл сопоставления

 <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
               assembly ="DataContractsLib"
               namespace="DataContractsLib.Prescription" >

  <class name="PrescDrugItem">
    <id name="ItemNumber" type="Int32">
       <generator class="native" />
    </id>
    <property name="AmountIssued" type="Int32" />
    <property name="TimePeriod" type="String" length="30" />
  </class>
  

моя проблема в том, что теперь мне нужно добавить другое свойство к классу Item (скажем, ItemTradeName и т.д.), Но я не хочу, чтобы оно сохранялось в базе данных (потому что я хочу использовать это новое свойство для временного хранения некоторых данных). Я пробовал update = false и insert = false в файле сопоставления, но пока безуспешно. Не могли бы вы, ребята, пожалуйста, сказать мне, возможно ли это сделать. Спасибо.

Ответ №1:

Если это также не должно быть извлечено из базы данных, просто добавьте это как обычное свойство вашего класса и не сопоставляйте его.

Комментарии:

1. спасибо за ответ, Нил, но я подумал, что это создает еще одну проблему при сохранении объекта с недавно добавленным свойством? поскольку nhibernate не знает об этом свойстве (нет записи в сопоставлении). Я только что протестировал некоторый код, и, похоже, он работает очень хорошо 🙂