2011-02-14 123 views
1

我已经看了一些关于该主题的其他帖子,但大多数似乎都在处理选择。我有一个存储过程,它执行一些删除和检查,并简单地将一个int作为参数并返回一个成功的位。我想从我的代码中使用尖锐体系结构中的流畅nHibernate来解决这个问题。使用Fluent删除存储过程nHibernate

任何有关如何最好地解决这个问题的想法? 谢谢

回答

2

您不能映射存储过程与FluentNHibernate(AFAIK)。你需要一个XML映射这样的(SQL服务器):

<?xml version="1.0" encoding="utf-8" ?> 
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" namespace="Your.Xml.Mappings.Namespace"> 
    <sql-query name="DeleteSomeEntity" > 
    exec dbo.deleteSomeEntityProc ? 
    </sql-query> 
</hibernate-mapping> 

返回值可能会是object[]ArrayList如果你与NHibernate调用它。注意'?'论点,这将采取你的ID。要调用的名称将是“DeleteSomeEntity”还要记住,您必须使用约定“.hbm.xml”命名该文件,并且需要将其作为嵌入式资源包含在项目中!

对于FluentNHibernate加载的文件,你需要调用

database = database.Mappings(m => m.HbmMappings.AddFromAssembly(assembly)); 

上装配初始化您的映射时调用的XML。

如果确实需要映射返回类型,则可以在映射中包含<return><return-property>声明。我没有这样做,但是,你必须在NHibernate参考手册中查找它。

HTH。

+0

这似乎很好地做这项工作,谢谢:-) – Ben 2011-02-16 09:24:00