小编Gar*_*col的帖子

流利的NHibernate和存储过程

我有一个基本的Customer/Order/OrderItem/Product对象图.客户有多个订单,订单有多个订单商品,产品有许多订单商品.使用FNH成功映射了这些.

我遇到了配置存储过程和fluent-nhibernate的问题.在fluent-hibernate FNH(版本1.0 RTM)中,没有一种本地方法可以映射存储过程.这里有一个关于向类映射添加部件的解决方案,但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
Run Code Online (Sandbox Code Playgroud)

在中有一个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>
Run Code Online (Sandbox Code Playgroud)

这是CustomerOrderSummary类def:

namespace NVAble.Orders.Core
{
    public class CustomerOrderSummary
    {
        virtual public string CustomerName { get; …
Run Code Online (Sandbox Code Playgroud)

nhibernate stored-procedures hbm fluent-nhibernate

4
推荐指数
1
解决办法
9940
查看次数