Joh*_*nam 1 c# nhibernate named
我来自Java方面使用Hibernate而我还没有找到合适的位置来放置命名查询NHibernate.
使用Visual Studio 2008,C#2008
我有一个问题
<query name="SchwabAccountList">
from DB_Accounts a
where a.AdminOffCode = 'SWB'
</query>
Run Code Online (Sandbox Code Playgroud)
我想把它放在.hbm.xmlAccount表中(DB_Accounts)
我把它放在文件的末尾但在<class>标签内
<query name="AccountList">
from DB_Accounts a
where a.AdminOffCode = 'SWB'
</query>
</class>
</hibernate-mapping>
Run Code Online (Sandbox Code Playgroud)
我正在使用的代码,我尝试了几种不同的方法,但得到了
Named query not known: AccountList
或者我尝试使用的任何其他名称(assembly.dir.dir.class.queryname)那种东西.
访问代码看起来像.
ISessionFactory factory = cfg.BuildSessionFactory();
ISession session = factory.OpenSession();
IList<DB_Accounts> accountList =
(IList<DB_Accounts>)(session.GetNamedQuery("AccountList").List());
foreach (BDM_Controller.Source.ORM.DB_Accounts acctRec in accountList)
{
...
Run Code Online (Sandbox Code Playgroud)
我错过了什么?
我将查询移到了标记之外,让它识别出查询.我之前在映射文件的顶部有它,它抱怨下面的标记.这可能是单引号的问题.我添加了CDATA包装器以防止这些问题.所以这两个变化的组合可能解决了这个问题.
我现在有:
</class>
<query name="AccountList" cacheable="true" read-only="true">
<![CDATA[
from DB_Accounts a
where a.AdminOffCode = 'SWB'
]]>
</query>
</hibernate-mapping>
Run Code Online (Sandbox Code Playgroud)
这很有效
| 归档时间: |
|
| 查看次数: |
3841 次 |
| 最近记录: |