C# 排除Fluent映射中的类

C# 排除Fluent映射中的类,c#,fluent-nhibernate,fluent-nhibernate-mapping,C#,Fluent Nhibernate,Fluent Nhibernate Mapping,下面是我的项目中fluent映射的当前代码 public FluentConfiguration Setup(Action<MappingConfiguration> mappingConfigurationAction) { Assembly mappingsAssembly = typeof(SessionFactory).Assembly; return Fluently.Configure() .Databas

下面是我的项目中fluent映射的当前代码

public FluentConfiguration Setup(Action<MappingConfiguration> mappingConfigurationAction)
    {
        Assembly mappingsAssembly = typeof(SessionFactory).Assembly;

        return Fluently.Configure()
            .Database(MsSqlConfiguration.MsSql2008.ConnectionString(_connection)
                          .AdoNetBatchSize(1000)
                          .ShowSql()
                          .FormatSql()
                          .Dialect<NhibernateDialect>
                          )
            .Mappings(m =>
                          {
                              m.FluentMappings.AddFromAssembly(mappingsAssembly).Conventions.AddAssembly(
                                  mappingsAssembly).ExportTo(@"C:\Mappings");


                              m.HbmMappings.AddFromAssembly(mappingsAssembly);)

                              if (mappingConfigurationAction != null)
                              {
                                  mappingConfigurationAction(m);
                              }
                          }
            );
    }
公共流配置设置(操作映射配置操作) { Assembly mappingsAssembly=typeof(SessionFactory).Assembly; 流畅地返回。Configure() .Database(MsSqlConfiguration.MsSql2008.ConnectionString(_connection) .ADONbatchSize(1000) .ShowSql() .FormatSql() 地方话 ) .Mappings(m=> { m、 FluentMappings.AddFromAssembly(mappingsAssembly).Conventions.AddAssembly( ExportTo(@“C:\Mappings”); m、 HbmMappings.AddFromAssembly(映射组件);) if(mappingConfigurationAction!=null) { 映射配置动作(m); } } ); } 这样做的目的是将当前程序集/项目中的所有类都包含到映射程序集中。我一直在尝试从映射程序集中排除一个特定的文件/类,但没有任何运气

我该怎么做

谢谢, Sandeep

见:

AutoMap.AssemblyOf(type=>type.Namespace.EndsWith(“实体”))

我已经看到了使用“标记接口”的建议:

区分要包含在映射中的类


例如,我提到了它,下面是我如何解决问题的:

foreach (Type mappingClass in mappingClasses)
                                  {
                                      if (!mappingClass.Namespace.Contains("Adapter.Common") &&
                                          !mappingClass.Namespace.Contains("OracleMapping"))
                                      {
                                          m.FluentMappings.Add(mappingClass);
                                      }
                                  }

但我仍然存在筛选HBM映射的问题,这是我无法用上述代码实现的。

正如您在我的代码中所看到的,由于我的项目中的一个要求,我混合使用了fluent和HBM映射。我无法使用自动映射。链接已断开,我无法找到此过载。是否可以更新。缺少代码:var mappingClasses=mappingsAssembly.GetTypes();
foreach (Type mappingClass in mappingClasses)
                                  {
                                      if (!mappingClass.Namespace.Contains("Adapter.Common") &&
                                          !mappingClass.Namespace.Contains("OracleMapping"))
                                      {
                                          m.FluentMappings.Add(mappingClass);
                                      }
                                  }