Я добавил некоторые расчетные свойства только для чтения в мой класс и теперь бросает QueryException: не удалось разрешить свойство.Добавление вычисляемых свойств в класс throws Ошибка NHibernate при использовании Linq to NHibernate
Вот мой класс (поддельные расчеты прямо сейчас):
public class IncompleteApplication : DealerBase
{
public virtual string Content { get; set; }
public virtual string LegalBusinessName
{
get
{
return "Leg";
}
}
public virtual string DbaName
{
get
{
return "Dba";
}
}
}
Mapping:
public class IncompleteApplicationMap : DealerBaseMap<IncompleteApplication>
{
public IncompleteApplicationMap()
{
Schema("Dealer");
Table("XmlSerialization");
Map(app => app.Content);
}
}
И код вызова:
data.GridDataItems = (from app in _Repository.GetAll()
select new GridData.GridDataItem()
{
ID = app.Id,
SubmittedDate = app.LastUpdated,
UserName = app.User.UserName,
LegalBusinessName = app.LegalBusinessName,
DbaName = app.DbaName
}).ToArray();
_Repository.GetAll() возвращает IQueryable , Когда я добавляю .ToList() после GetAll(), код работает очень хорошо (хотя я получаю ситуацию Select N + 1).
Спасибо за помощь!
Это похоже на плохой способ обращения с этим. Почему я хочу, чтобы мой запрос обрабатывал это? Похоже, что лучшим действием было бы сказать NHibernate, что поле не отображается. Не уверен, что здесь находится NHibernate или Linq. –
@Mike: Насколько я знаю, это единственный способ чистить это с помощью существующего поставщика NH Linq (как это ни прискорбно). Хотя это и не совсем желательно, это позволит вам запрашивать эти рассчитанные поля в HQL/etc в дополнение к решению проблемы с провайдером linq ... – DanP
Yikes. Надеюсь, кто-то еще зазвонит. –