2012-02-07 122 views
3

我有一個用於在nhibernate中映射的程序集。程序集中的一些映射類在另一個程序集中有引用。引用第二個程序集時如何配置映射。我不想整個第二組件映射來自多個組件的映射

Configuration cfg = new Configuration(); 
     cfg.SetInterceptor(new NHInterceptor()); 
     cfg.Configure(sessionFactoryConfigPath); 



     FluentConfiguration fluentConfiguration = Fluently.Configure(cfg) 
      .Mappings(m => 
      { 
       m.FluentMappings 
        .AddFromAssembly(Assembly.Load("someassembly")) 
        .Conventions.Add(DefaultLazy.Always(), 
             OptimisticLock.Is(x => x.All()), 
             DynamicUpdate.AlwaysTrue(), 
             DynamicInsert.AlwaysFalse(), 
             DefaultCascade.None() 
            ) 
        .Conventions.AddFromAssemblyOf<"someDateconventionobject">() 
        ; 
      }); 
+0

任何人都可以幫助這些請。 – arjun 2012-02-07 10:05:20

+0

哪個映射(使用Fluent NHibernate進行自動映射,使用Fluent NHibernate進行「正常」映射,僅使用NHibernate進行映射)?哪些版本的NHibernate(和Fluent NHibernate,如果使用的話)? – cremor 2012-02-07 10:07:49

+0

正常映射與流利的nhibernate 2.0 – arjun 2012-02-07 10:09:35

回答

0

您可以簡單地添加一個映射類:

m.FluentMappings 
    .Add<MappingClassFromOtherAssembly>() 

或者使用Add(Type type)過載和Type.GetType(string typeName)方法,如果你沒有一個參考到另一個組件。

+0

,但它會映射第二個組裝不會嗎?它是映射類的類型名稱 – arjun 2012-02-07 10:22:47

+0

它拋出錯誤說system.reflection.missing.value – arjun 2012-02-07 10:33:52

+0

任何人都可以請幫助這些。我不想從第二個程序集中有選擇地添加班級地圖。如果需要,我希望引用自動添加 – arjun 2012-02-07 11:12:53