C# nhibernate命名查询,未找到名称

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 或者我尝试使用的任何其他名

我来自使用Hibernate的Java方面,只是没有找到将命名查询放在
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。这也会导致相同的错误。

>