gpt4 book ai didi

c# - 如何使用 NHibernate 从存储过程填充实体的子集合/关联

转载 作者:行者123 更新时间:2023-11-30 22:26:02 25 4
gpt4 key购买 nike

我想知道是否有一种方法可以从 NHibernate 中的存储过程填充递归实体(子集合/关联)。假设我有下一节课:

public class Category
{
public int category_id { set; protected get; }
public string category_description { set; get; }
public IEnumerable<Category> SubCategories { set; get; }

....
}

有没有办法从存储过程中获取根类别列表,该存储过程获取一组类别及其整个子树,每个类别在 SubCategories 属性中都有其各自的子项?我想获得与“Eagerly load recursive relation”中提出的解决方案相同的结果,但从存储过程而不是表中获取结果。

最佳答案

这可以通过命名查询来实现。在此处查看有关命名查询的官方 NHibernate 文档:http://nhibernate.info/doc/nh/en/index.html#querysql-namedqueries

你想要做的是使用命名查询的特性,它允许你加入关联:<return-join />

这里的 NHibernate 博客上还有一个关于同一主题的示例:http://nhibernate.info/blogs/nhibernate/archive/2008/11/24/populating-entities-with-associations-from-stored-procedures-with-nhibernate.aspx

复杂的例子:

<sql-query name="GetCategory">
<return alias="Category" class="Category"/>
<return-join alias="Subcategory" property="Category.SubCategories">
<return-property column="Subcategory.SubcategoryId" name="Id" />
</return-join>
EXEC someStoredProcedureName :CategoryId
</sql-query>

关于c# - 如何使用 NHibernate 从存储过程填充实体的子集合/关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12062214/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com