有人能告诉我使用NHibernate调用存储过程的最佳和推荐方法吗?
我设置了映射,目前我正在使用
var list = session.CreateSQLQuery("exec usp_Test").AddEntity(typeof(Product)).List<Product>();
我确实得到了我的产品的LIST,但这是最好的方法吗?
也是Model类即。产品最好设置为单数或复数(产品)。
提前致谢
答案 0 :(得分:1)
我建议尽可能避免使用NHibernate存储过程。
可能仍有使用存储过程的原因。是这样,有几种方法可以将它们与NHibernate一起使用。
直接将它们作为查询进行调用(如您所做),将它们指定为预定义查询,或者甚至可以将它们定义为NHibernate应如何选择,插入或更新实体的方式。
如何在映射文件中使用存储过程{。{3}}。
如何从代码中调用它们post from Ayende。
关于您的代码:
AddEntity
不会添加类型,而是添加实体实例。它实际上已转为主键。我不明白关于单数和复数的最后一句话。这是另一个问题吗?
答案 1 :(得分:0)
不是真的。通常,如果您使用的是nHibernate,则允许它为您生成查询。并不是说你正在做的事情有什么不妥,但你是通过这样做来欺骗自己的nHibernate的一些有用性。如果我是你,我会考虑通过使用标准对象来收集对象。