以下是我项目中流畅映射的当前代码
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);
}
}
);
}
它的作用是它包含当前程序集/项目中映射程序集中的所有类。我一直试图从映射程序集中排除一个特定的文件/类而没有任何运气。
我该怎么做?
谢谢, 和Sandeep
答案 0 :(得分:0)
见here:
AutoMap.AssemblyOf<YourEntity>(type => type.Namespace.EndsWith("Entities"))
答案 1 :(得分:0)
我已经看到了建立“标记界面”的建议:
public interface IMappable
{
}
public class MyMappableClass : IMappable
{
}
public class MyNonMappableClass
{
}
区分要包含在映射中的类。
例如this post提到它
答案 2 :(得分:0)
以下是我解决问题的方法:
foreach (Type mappingClass in mappingClasses)
{
if (!mappingClass.Namespace.Contains("Adapter.Common") &&
!mappingClass.Namespace.Contains("OracleMapping"))
{
m.FluentMappings.Add(mappingClass);
}
}
但我仍然遇到过滤HBM映射的问题,而上述代码无法实现。