C# 排除Fluent映射中的类
下面是我的项目中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
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);
}
}