当我尝试使用CreateSqlQuery查询表并将其转换为包含公式属性的实体时,我得到以下Adoexception.
"值不能为null.参数名称:fieldName"
首先,是否可以在具有公式映射的实体上使用createsqlquery?
可以使用CreateSQLQuery公式.
这是一个概念证明.映射(类不难猜):
<class name="Foo">
<id name="Id">
<generator class="hilo"/>
</id>
<property name="Data"/>
<property name="DataX2" formula="Data * 2"/>
</class>
Run Code Online (Sandbox Code Playgroud)
这是一个查询:
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>();
Run Code Online (Sandbox Code Playgroud)
如果你仔细观察,你会发现我使用的公式与映射中声明的公式不同.只要查询中包含所有属性,NHibernate就允许任何内容.
我建议你阅读17.1.2.实体查询和以下几点.
| 归档时间: |
|
| 查看次数: |
2903 次 |
| 最近记录: |