C# nhibernate命名查询,未找到名称
我来自使用Hibernate的Java方面,只是没有找到将命名查询放在C# nhibernate命名查询,未找到名称,c#,nhibernate,named,C#,Nhibernate,Named,我来自使用Hibernate的Java方面,只是没有找到将命名查询放在NHibernate中的适当位置 使用Visual Studio 2008,C#2008 我有一个问题 <query name="SchwabAccountList"> from DB_Accounts a where a.AdminOffCode = 'SWB' </query> 我正在使用的代码,我尝试了几种不同的方法,但是 命名查询未知:AccountList 或者我尝试使用的任何其他名
NHibernate
中的适当位置
使用Visual Studio 2008,C#2008
我有一个问题
<query name="SchwabAccountList">
from DB_Accounts a
where a.AdminOffCode = 'SWB'
</query>
我正在使用的代码,我尝试了几种不同的方法,但是
命名查询未知: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)
{
...
ISessionFactory=cfg.BuildSessionFactory();
ISession session=factory.OpenSession();
IList accountList=
(IList)(session.GetNamedQuery(“AccountList”).List();
foreach(账户列表中的BDM_Controller.Source.ORM.DB_账户账户)
{
...
我遗漏了什么?我将查询移到标记之外,并让它识别查询。我之前将它放在映射文件的顶部,它抱怨下面的标记。单引号可能有问题。我添加了CDATA包装以防止这些问题。因此,将这两个更改结合起来可能会解决问题他解决了这个问题 我现在有:
</class>
<query name="AccountList" cacheable="true" read-only="true">
<![CDATA[
from DB_Accounts a
where a.AdminOffCode = 'SWB'
]]>
</query>
</hibernate-mapping>
这很有效我将查询移到标记之外,并让它识别查询。我之前将其放在映射文件的顶部,它抱怨下面的标记。单引号可能有问题。我添加了CDATA包装以防止这些问题。因此,将这两个更改结合起来可能解决了他解决了这个问题 我现在有:
</class>
<query name="AccountList" cacheable="true" read-only="true">
<![CDATA[
from DB_Accounts a
where a.AdminOffCode = 'SWB'
]]>
</query>
</hibernate-mapping>
这是有效的。另外,请确保映射文件生成操作设置为“嵌入式资源”,否则即使映射文件本身正确,也会出现相同的错误。此外,请确保映射文件生成操作设置为“嵌入式资源”,否则即使映射文件本身正确,也会出现相同的错误。还要确保添加的hbm文件扩展名为.hbm.xml,而不是.xml。这也会导致相同的错误。还要确保添加的hbm文件扩展名为.hbm.xml,而不是.xml。这也会导致相同的错误。>