流畅的 NHibernate 和存储过程

2023-12-05

我有一个基本的客户/订单/订单项目/产品对象图。客户有很多订单,订单有很多订单项目,产品有很多订单项目。这些已使用 FNH 成功映射。

我在配置存储过程和 Fluent-nhibernate 时遇到了障碍。在 fluid-hibernate FNH(版本 1.0 RTM)中没有映射存储过程的本机方法。有一个解决方案here关于向类映射添加部件,但 AddPart 调用已从 FNH 版本中删除。

存储过程很简单:

CREATE PROCEDURE [dbo].[OrderCountByCustomer] 
AS
BEGIN
    SET NOCOUNT ON;

    SELECT 
        c.name as [Customer.Name],
        CAST(count(o.id) as NVARCHAR) as [Customer.OrderCount]
    FROM customer c
        LEFT OUTER JOIN [order] o
        ON o.customer_id = c.id
    GROUP BY c.name

END

有一个 CustomerOrderSummary.hbm.xml 在

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="NVAble.Orders.Core" namespace="NVAble.Orders.Core">
    <sql-query name="OrderSummary">
        <return class="CustomerOrderSummary">
            <return-property column="Customer.Name" name="CustomerName" />
            <return-property column="Customer.OrderCount" name="OrderCount" /> 
        </return>
        EXEC [OrderCountByCustomer]
    </sql-query>
</hibernate-mapping>

这是 CustomerOrderSummary 类定义:

namespace NVAble.Orders.Core
{
    public class CustomerOrderSummary
    {
        virtual public string CustomerName { get; set; }
        virtual public string OrderCount { get; set; }

        public override string ToString()
        {
            return string.Format("{0} {1}", CustomerName, OrderCount);
        }
    }
}

但是,当尝试启动 NH 会话时,我在命名查询中收到错误OrderSummary没有其他细节。

我可能错过了一些非常简单的映射CustomerOrderSummary课程的程序,我不知道。该域对象显然不会直接映射到数据库中的表,因此我不确定是否有正常的<class />HBM 映射可以工作吗?

提前致谢!


好的,经过更多调查后。我需要域类的映射以及命名查询 hbm.xml 文件。

在我的配置类中我有

config.Mappings(x =>
{
    x.FluentMappings.AddFromAssemblyOf<CustomerMapping>().ExportTo(schemaPath);
    x.HbmMappings.AddFromAssemblyOf<CustomerOrderSummary>();
});

唯一的缺点是我需要手动创建存储过程的xml映射,目前我无法使用FNH

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

流畅的 NHibernate 和存储过程 的相关文章

随机推荐

  • BETWEEN 查询返回零或一

    我有这样的疑问 SELECT fecha BETWEEN 1390950000 AND 1391126400 GROUP CONCAT CONCAT WS idItem nombreItem cantidad diferencia ORDE
  • mod_rewrite:从 URL 中删除查询字符串?

    我正在尝试使用 htaccess 进行以下重定向 301 page 1 重定向到 其中 是通配符 基本上 我只是想阻止任何人访问 URL 末尾带有 page 1 的页面 而是将他们定向到相同的 url 减去 page 1 有没有快速的方法来
  • 如何在单页网站的导航中实现活动状态

    我正在开发一个一页网站 在这个网站中 我希望在导航栏中的活动部分或 页面 带有下划线 目前 我点击链接后会显示带下划线的链接 但是 当我单击转到另一个活动 页面 时 它仍然带有下划线 以下是在 HTML 中设置导航的方式 div class
  • 有没有办法将 @mention 插入到使用 pyfacebook 发布的 Facebook 状态更新中?

    我的应用程序中有一些如下代码 message Hi John Doe postID fb stream publish message loader render to string wall post phtml message mess
  • /dev 与 /exec 文档和错误处理

    让我们从没有太多文档的事实开始 dev vs exec端点 如果你有一些我找不到的有价值的信息 我非常乐意看到它 没有讽刺 据我所知 dev 是当前的编辑版本 exec 是脚本的最后发布版本 或者如果您选择旧版本 这告诉我 我应该能够编辑我
  • 如何让 Z3 返回最小模型?

    如果我给 Z3 一个像 p 这样的公式q 我希望 Z3 返回 p true q dont care 或者 p 和 q 切换 但它似乎坚持为 p 和 q 赋值 即使我没有完成转换 通话时亮起Eval 除了对此感到惊讶之外 我的问题是如果 p
  • 如何扩展或重写 CakePHP 核心助手的功能/方法

    This Cakephp 覆盖 HtmlHelper link问了一个非常相似的问题 但没有完整的答案 也许现在 随着 蛋糕2 的推出 就会有 我想创建一个自定义助手 它是 Cake 的 Paginator Helper 的子类 我希望我的
  • iPhone sdk - 使用自定义相机

    我正在开发一个需要连续拍摄两张照片的应用程序 我目前正在使用 iPhone 相机 但是 我不想取消 左下角的按钮 我不想预览我的照片 蓝色 按钮 使用 我应该怎么办 我应该自己制作相机吗 我找不到只有 拍照 按钮的自定义相机的简单教程 创建
  • Elasticsearch 数据二进制文件内存不足

    我尝试将 800GB 文件上传到 Elasticsearch 但我不断收到内存错误 告诉我数据二进制文件内存不足 我的系统有 64GB RAM 和 3TB 存储空间 curl XPOST http localhost 9200 carrie
  • 在 UWP 中保存图像时访问被拒绝。访问被拒绝。 (HRESULT 异常:0x80070005 (E_ACCESSDENIED))

    我正在 Windows 10 SDK 上开发通用 Windows 应用程序 以在图像中识别的面部上绘制矩形 我正在使用Win2D编辑图片并在其上绘制矩形 我可以从图片库中读取文件 但是当我尝试在编辑后保存图像时 会出现以下错误 访问被拒绝
  • 较低的喜欢与iLIKE

    以下两个查询组件的性能比较如何 较低的喜欢 LOWER description LIKE abcde iLIKE description iLIKE abcde 答案取决于许多因素 例如 Postgres 版本 编码和区域设置 LC COL
  • 使用 Django 进行 CSRF,使用 Axios 进行 React+Redux

    这是一个教育项目 不用于生产 我并不打算让用户登录作为其中的一部分 我可以在没有用户登录的情况下使用 CSRF 令牌对 Django 进行 POST 调用吗 我可以在不使用 jQuery 的情况下完成此操作吗 我在这里超出了我的深度 并且肯
  • Android - FEATURE_NO_TITLE 不起作用

    我试图通过布局显示我的关于我们页面 所以我不需要任何标题栏 我试过 Dialog d new Dialog this d setContentView R layout about us d setCanceledOnTouchOutsid
  • 使用 Grunt grunt-contrib-less) 在 Visual Studio 2013 中编译 Bootstrap 3.1 LESS

    我在 Visual Studio 2013 中使用以下内容作为预构建事件 根据以下内容编译 Bootstrap 3 0 这个答案它起作用了 recess ProjectDir Content bootstrap bootstrap less
  • 本季度平均销售额与上一季度平均销售额的比较

    我有一张表 其中有各种属性 例如区域产品 年份 季度 月份 销售 我必须计算具有相同区域的每个产品的 avg qtr 销售并显示其之前的 avg qtr 销售 我已阅读有关滞后的信息 但在这里无法使用 因为它在重复多少行后不固定 我的表结构
  • R 编码:如何保存 4 个完整季度的数据记录

    我有一个包含公司季度数据的数据框 并且有这个问题 如何只保留那些拥有 4 个季度数据的公司的记录 因为公司有时会出现 1 2 或 3 个季度的数据 但我需要在整个数据框架中为每个公司保留 4 个完整的季度 我在下面包含了示例 R 代码 co
  • na] 引起:java.sql.SQLSyntaxErrorException:ORA-00942:表或视图不存在 - Spring Batch

    我正在研究Spring Boot v2 2 6 RELEASE 和 Spring Batch 在此示例中 我从 Oracle 系统读取数据 并在应用一些数据过滤器后将其放入 Postgres 系统中 注意 Spring Batch 能够读取
  • C4477 - 格式字符串“%s”需要类型“char *”,但可变参数 1 的类型为“int”

    我已经关注论坛一个多月了 它已经回答了我的大部分问题 但我一直在努力解决一个难题 我在这里找不到答案 还有其他类似的解决方案 但它没有解决我的问题 我试图将我巨大的代码块简化为如下所示 define DATA ROW 1 I have on
  • 像扫描仪一样检索 JTextField 内容

    我正在尝试为我的程序设置一个 GUI 并且它基本上可以工作 但是 我希望能够创建一个与 Scanner 的 nextLine 非常相似的方法 它等待来自 JTextField 的输入 然后返回它 看起来就像这个问题与我的非常相似 但没有等待
  • 流畅的 NHibernate 和存储过程

    我有一个基本的客户 订单 订单项目 产品对象图 客户有很多订单 订单有很多订单项目 产品有很多订单项目 这些已使用 FNH 成功映射 我在配置存储过程和 Fluent nhibernate 时遇到了障碍 在 fluid hibernate