【问题标题】:creating class for stored procedure, returning data from multiple tables为存储过程创建类,从多个表返回数据
【发布时间】:2011-04-07 05:05:01
【问题描述】:

我有一个从多个表返回数据的存储过程。在 nhibernate 中,我们为每个表创建类。是否需要为它返回的每个表创建类,然后将该类相互关联。 还有其他方法吗 就像创建一个包含存储过程返回的所有字段的类

谢谢

【问题讨论】:

    标签: nhibernate


    【解决方案1】:

    这很容易实现。 在您的映射中添加以下内容:-

    <sql-query name="GetItemDTO">
      <![CDATA[exec uspGetSomeResults :id]]>
    </sql-query>
    

    创建一个类:-

    public class ItemDTO 
    {
      public virtual long Id { get; protected set; }
      public virtual string Name { get; protected set; }
    }
    

    并检索结果

    return Session
        .GetNamedQuery("GetItemDTO")
        .SetInt64("id", 123456)
        .SetResultTransformer(new AliasToBeanResultTransformer(typeof(ItemDTO)))
        .List<ItemDTO>();
    

    这假设 SP 返回一个 Id 和一个 Name 列。这些必须与您的类名完美匹配。

    【讨论】:

    • 非常感谢您的快速回复。我解决了我的问题。
    【解决方案2】:

    我没有使用过存储过程,但您绝对可以创建一个映射到视图而不仅仅是表的类。

    顺便说一句,如果你使用的是QueryOver,你可以使用Select方法返回自定义对象:http://nhforge.org/blogs/nhibernate/archive/2009/12/17/queryover-in-nh-3-0.aspx#Projections

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-11-06
      • 2020-03-27
      • 2021-12-13
      • 1970-01-01
      • 2014-10-11
      • 1970-01-01
      • 2021-11-28
      相关资源
      最近更新 更多