nhibernate - 使用 Linq to NHibernate 时,将计算属性添加到类会引发 NHibernate 错误

标签 nhibernate linq-to-nhibernate

我向我的类添加了一些计算的只读属性,它现在抛出一个 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/

相关文章:

.net - 单独项目中的 nHibernate 域模型和映射文件

c# - LINQ和nHibernate教程视频

c# - Criteria 可以返回 Dictionary 而不是 List<DTO> 吗?

c# - 如何使用 Fluent NHibernate 和 SchemaUpdate.Execute() 索引外键?

nhibernate - NHibernate 可以在不延迟加载整个集合的情况下查询特定的子项吗?

c# - Fluent NHibernate OptimisticLock.None() 导致 "The string ' none' 不是有效的 bool 值。”

c# - 具有相同标识符的不同对象已与 session 错误相关联

c# - LINQ to NHibernate 和 let 关键字

c# - NHibernate OrderByDescending 抛出异常 `A recognition error occurred`

c# - NHibernate .Query 返回陈旧数据