如何使用 NHibernate 调用从多个表返回结果的过程?
通常我们为每个表类创建 1:1 映射。
例如(表格):
[用户]
user_id - PK
姓名
[交易]
user_id - FK
item_id
金额
示例映射:
公共类用户
{
公共字符串 ID {get;设置;}
公共字符串名称{get;设置;}
}
公共类交易
{
公共字符串用户ID {获取;设置;}
公共字符串 ItemID {get;设置;}
公共十进制金额 {get;设置;}
}
但出于优化考虑,有时需要在查询结果的同时进行一些操作;我们通常使用从多个表返回结果的存储过程。 如果我们使用上面的例子;我们如何调用从连接表返回结果的过程?是否可以仅为了合并记录而无需创建新类和绑定?
谢谢!
Normally we create 1:1 mapping per table-class.
Ex(Tables):
[users]
user_id - PK
name
[transactions]
user_id - FK
item_id
amount
Example mapping:
public class User
{
public string ID {get; set;}
public string Name {get; set;}
}
public class Transaction
{
public string UserID {get; set;}
public string ItemID {get; set;}
public Decimal Amount {get; set;}
}
But due to optimization concern and sometimes there are operations needed to be done while querying for results; we usually use stored procedures that returns result from multiple tables.
If we use the example above; how can we call a procedure that returns results from the joined tables? Is it possible without creating a new class and binding just for the sake of this combined records?
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在这种情况下,可以使用存储过程,使用如下所示的映射构造:
此示例假设 Transactions 被映射为 User 类上的包。您可以在 C# 中按如下方式使用此查询:
有关自定义 SQL 查询用法的 NHibernate 文档为 此处。
干杯,
格尔克。
It is possible to use a stored procedure in this case, using a mapping construct like the following:
This example assumes that Transactions is mapped as a bag on the User class. You would use this query as follows from C#:
NHibernate documentation on usage of custom SQL queries is here.
Cheers,
Gerke.