如何解决重复的SQL查询映射

时间:2012-11-20 08:04:34

标签: nhibernate-mapping fluent-nhibernate-mapping

这是我第一个使用NHibernate的项目,我遇到了映射问题。我的域类映射是使用FluentNhibernate流畅映射完成的,这些映射工作正常。

但现在我需要映射存储过程,这意味着我需要依赖hbm.xml个文件。所以我添加了一个名为NamedQueries.hbm.xml的名字:

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" >
  <sql-query name="GetLatestTrackings">
    <return-scalar column="TrackingId" type="Int32" />
    <![CDATA[
      exec Core.GetLatestTrackings
    ]]>
  </sql-query>
</hibernate-mapping>

流畅的映射如下所示:

        FluentConfiguration configuration = Fluently
            .Configure()
            .Database(MsSqlConfiguration
                          .MsSql2008
                          .ConnectionString(c => c.FromConnectionStringWithKey("Con")))
            .Mappings(m =>
                {
                    m.HbmMappings.AddFromAssembly(assemblyWithMappings);
                    m.FluentMappings.AddFromAssembly(assemblyWithMappings);
                });

        var nhibConfig = configuration.BuildConfiguration();

        SchemaMetadataUpdater.QuoteTableAndColumns(nhibConfig);

        return configuration.BuildSessionFactory();

但是在运行时我遇到以下异常:

  

DuplicateMappingException,重复查询/ sql-query映射   GetLatestTrackings

目前我正在考虑转向使用ADO.NET进行存储过程调用,因为我完全不想通过NHibernate映射它们。

0 个答案:

没有答案