我向我的类添加了一些计算的只读属性,它现在抛出一个 QueryException:无法解析属性。
这是我的类(class)(现在是假计算):
public class IncompleteApplication : DealerBase
{
public virtual string Content { get; set; }
public virtual string LegalBusinessName
{
get
{
return "Leg";
}
}
public virtual string DbaName
{
get
{
return "Dba";
}
}
}
映射:
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。当我在 GetAll() 之后添加 .ToList() 时,代码运行得很好(尽管我遇到了 Select N + 1 情况)。
感谢您的帮助!
最佳答案
您应该将两个只读属性映射到 nhibernate,并在查询时使用公式提供它们的值。我不太了解流利的 nh,但是您的属性的标准 xml 映射看起来像这样:
<property name="DbaName" access="readonly" insert="false" update="false" type="String" formula="(SELECT 'Dba')" />
关于nhibernate - 使用 Linq to NHibernate 时,将计算属性添加到类会引发 NHibernate 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3366049/