NHibernate"命名查询中的错误"

Kev*_*ang 7 nhibernate nhibernate-mapping

我定义了以下命名的SQL查询:

<sql-query name="ItemSearch">
    <return class="ItemSearchResult">
        <return-property name="Item" column="ItemId" />
        <return-property name="Distance" column="Distance" />
    </return>
    SELECT
        Items.*,
        dbo.DistanceBetween(Latitude, Longitude, :lat, :long) AS Distance
    FROM Items
    WHERE Contains(Name, :keywords)
    ORDER BY Distance ASC
</sql-query>
Run Code Online (Sandbox Code Playgroud)

每当我尝试运行我的应用程序时,我都会收到一般错误"命名查询中的错误:{ItemSearch}".这里有什么明显的错误吗?

ItemSearchResult类是一个非常简单的包装类,如下所示:

public class ItemSearchResult
{
    public Item Item {get; set;}
    public double Distance {get; set;}
}
Run Code Online (Sandbox Code Playgroud)

mon*_*ksy 1

这是我的代码中的一个示例: NHibernate 版本和我的 Hibernate 之间唯一的不同之处是自动导入,我会假设该包。

<hibernate-mapping auto-import="true" package="PackageName">
  <class name="Name of class to maptop">
    <composite-id>
      <key-property name="<name of parameter>" type="TYPE"/>
    </composite-id>
    <property name="COLUMNNAME" type="TYPE"/>
  </class>
  <sql-query name="queryName">
        <return alias="dr" class="Name of class to map to"/>
select columnName as {dr.nameofColumn}, 
   from table
 </sql-query>
</hibernate-mapping>
Run Code Online (Sandbox Code Playgroud)

我认为您的代码中存在的问题是您没有专门映射列以及它们如何映射到您的类。

注意:如果有任何字段不符合 NHibernate XML 格式,请通过注释告知我。我现在无法访问我的 NHibernate 映射文件。