#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 не знает об этом свойстве (нет записи в сопоставлении). Я только что протестировал некоторый код, и, похоже, он работает очень хорошо 🙂