Недавно у меня были некоторые проблемы с производительностью в веб-сервисе SOAP, который я написал некоторое время назад.Я заметил, что у меня было много запросов и мои отображения hbm.xml были полны ленивых = ложных утверждений.Я обновил до NHibernate 3.0 и удалил ленивый = ложный материал, и все стало намного быстрее .... но теперь я получаю следующую ошибку:
System.InvalidOperationException: произошла ошибка, генерирующаяXML документ---> System.InvalidOperationException: тип UserProxy не ожидался.Используйте атрибут XmlInclude или SoapInclude, чтобы указать типы, которые не известны статически.
Пользователь - это класс, для которого я удалил свойство lazy = false из тега класса следующим образом:
<class name="User" table="Users" >
<id name="DatabaseID" unsaved-value="0" column="ID" type="integer" >
<generator class="native"/>
</id>
<property name="IsExpert"/>
.....more stuff here....
</class>
В моем веб-сервисе есть такой метод (немного упрощенный ... в реальной жизни я использую шаблон, похожий на репозиторий, между сервисом и nhibernate):
[WebMethod]
public User GetUser(int userid)
{
session = GetCurrentSession();
return session.Load<User>(userid);
}
Веб-сервис ожидает сериализации пользователяи NHibernate дает мне UserProxy (который не совсем пользователь).Как мне это преодолеть?