【问题标题】:NHibernate - populate data from multiple stored proceduresNHibernate - 从多个存储过程中填充数据
【发布时间】:2011-01-21 05:45:02
【问题描述】:

是的,又是一个休眠和存储过程问题,抱歉...

我有两个返回相同结构的存储过程(所以我想将它们绑定到同一个类),唯一的区别是第二个存储过程中的“where”条件。我可以将两个存储过程都绑定到我的类吗?映射文件的外观如何?或者您更喜欢不同的方法:

  • 仅使用一个存储过程并添加新的输入参数,说明该过程的行为方式
  • 根本不要使用 NHibernate - 改用 DataAdapter
  • 创建一个视图(但在我的示例中我不知道如何...)
  • ...

第一个存储过程:

ALTER procedure [BadCodes].[GetCodesBetween]
    @codeFrom bigint,
    @codeTo bigint
as
begin
    set nocount on

    ;with BadCodesOriginal as (
        select Code 
        from Scanning.BadCodes 
        where Code between @codeFrom and @codeTo
    ),
    BadCodesScanned as (
        select Code, count(*) NumberOfBadCodesScanned 
        from BadCodes.Scan
        where Code between @codeFrom and @codeTo
        group by Code
    )
    select t1.Code Code, isnull(t2.NumberOfBadCodesScanned, 0) NumberOfBadCodesScanned
    from BadCodesOriginal t1 left join BadCodesScanned t2 on (t1.Code = t2.Code)
    order by t1.Code
end

第二个存储过程:

ALTER procedure [BadCodes].[GetCodesBetweenDifference]
    @codeFrom bigint,
    @codeTo bigint
as
begin
    set nocount on

    ;with BadCodesOriginal as (
        select Code 
        from Scanning.BadCodes 
        where Code between @codeFrom and @codeTo
    ),
    BadCodesScanned as (
        select Code, count(*) NumberOfBadCodesScanned 
        from BadCodes.Scan
        where Code between @codeFrom and @codeTo
        group by Code
    )
    select t1.Code Code, isnull(t2.NumberOfBadCodesScanned, 0) NumberOfBadCodesScanned
    from BadCodesOriginal t1 left join BadCodesScanned t2 on (t1.Code = t2.Code)
    where isnull(t2.NumberOfBadCodesScanned, 0) <> 1
    order by t1.Code
end

这是我的课:

public class CheckedBadCodeOverview
    {
        public virtual long Number { get; set; }
        public virtual int NumberOfScans { get; set; }

        public CheckedBadCodeOverview()
        {
        }
    }

【问题讨论】:

    标签: nhibernate stored-procedures nhibernate-mapping


    【解决方案1】:

    只需为每个 SP 添加一个&lt;sql-query&gt;

    查看16.2.2. Using stored procedures for querying

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多