NHibernate,如何读取NamedQuery结果元数据?
我在我的 nhibernate 映射文件上定义了一个 sql 查询,它调用一个存储过程来选择一些记录。
<sql-query name="sp_MYSP">
exec MYDBSP :param1, :param2, :param3
</sql-query>
在代码中,我以这种方式调用命名查询:
IQuery myQuery= Session.GetNamedQuery("sp_MYSP");
myQuery.SetString("param1", p1);
myQuery.SetString("param2", p2);
myQuery.SetString("param3", p3);
为了获取结果,我使用“List”方法
myQuery.List();
,但通过这种方式,它返回一个没有任何元信息的对象列表......如列名。我会像数据表一样读取结果来获取特定属性的值...我该怎么办?
所选记录不代表我的域模式的任何实体,而仅代表特定流程使用的数据集合。
I have an sql-query define on my nhibernate mapping file, that call an stored procedure to select some records.
<sql-query name="sp_MYSP">
exec MYDBSP :param1, :param2, :param3
</sql-query>
On code, I call the named query in this way:
IQuery myQuery= Session.GetNamedQuery("sp_MYSP");
myQuery.SetString("param1", p1);
myQuery.SetString("param2", p2);
myQuery.SetString("param3", p3);
to get results I use "List" method
myQuery.List();
but in this way it return a list of objects without any meta information...like columname. I would read result like a datatable to get value of specific property...how can I do?
The selected records don't represents any entity of my domain modal, but only a collection of data use for a specific process.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果您不将该查询映射到实体并期望数据表,那么为什么要使用 NHibernate?
如果您实际上将 NHibernate 用于其余数据 (session.Connection),您仍然可以从 NHibernate 获取连接并从那里创建原始 ADO.NET 命令。
If you are not mapping that query to an entity and expect a datatable, why use NHibernate at all?
You can still get a connection from NHibernate if you are actually using it for the rest of your data (session.Connection) and create a raw ADO.NET command from there.