2011-07-07 14 views
1

をクラスを除外流暢なマッピングの現在のコードは、私のプロジェクトであるはここで流暢マッピングで

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); 
           } 
          } 
      ); 
    } 

これが何をするか、それがマッピングアセンブリに現在のアセンブリ/プロジェクト内にあるすべてのクラスが含まれていることです。私は、特定のファイル/クラスをマッピングアセンブリから運のない状態で除外しようとしていました。

どうすればいいですか?

おかげで、 サンディープ

答えて

0

hereを参照してください。
AutoMap.AssemblyOf<YourEntity>(type => type.Namespace.EndsWith("Entities"))

+0

私のコードでわかるように、私は自分のプロジェクトの要件のために流暢なマッピングとHBMのマッピングを組み合わせて使用​​しています。私はautomapを使用することはできません。 – sanchin

+0

リンクが壊れています。このオーバーロードを見つけることができません。あなたは更新していただけますか? – shankbond

0

私は "マーカーインターフェイス" を持ってアドバイスを見てきました:

public interface IMappable 
{ 

} 


public class MyMappableClass : IMappable 
{ 
} 

public class MyNonMappableClass 
{ 
} 

含めたいクラスを区別するためにマッピングで。例えば

this postここで

0

に言及し、私は私の問題を解決する方法である:

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

をしかし、私はまだ私は上記のコードでは達成することはできませんHBMマッピングのためのフィルタリングの問題を持っています。

+0

コードがありません:var mappingClasses = mappingsAssembly.GetTypes(); – sanchin

関連する問題