nhibernate – 具有公式属性的实体上的CreateSqlQuery

当我尝试使用CreateSqlQuery查询表并将其转换为包含公式属性的实体时,我得到以下Adoexception.

“价值不能为空.
参数名称:fieldName“

首先,是否可以在具有公式映射的实体上使用createsqlquery?

可以将CreateSQLQuery与公式一起使用.

这是一个概念证明.映射(类不难猜):

<class name="Foo">
  <id name="Id">
    <generator class="hilo"/>
  </id>
  <property name="Data"/>
  <property name="DataX2" formula="Data * 2"/>
</class>

这是一个查询:

var foos = session.CreateSQLQuery(
                   @"
                   select Id          as {foo.Id},
                          Data        as {foo.Data},
                          Data + Data as {foo.Data2}
                   from   Foo
                   ")
                  .AddEntity("foo", typeof(Foo))
                  .List<Foo>();

如果你仔细观察,你会发现我使用的公式与映射中声明的公式不同.只要查询中包含所有属性,NHibernate就允许任何内容.

我建议你阅读17.1.2. Entity queries以及以下几点.

本站公众号
   欢迎关注本站公众号,获取更多程序园信息
开发小院