2010-03-26 4 views
3

я эти 2 класса:Fluent NHibernate IDictionary с композитным отображения элементов

public class Category 
     { 
      IDictionary<string, CategoryResorce> _resources; 
     } 

    public class CategoryResource 
     { 
      public virtual string Name { get; set; } 
      public virtual string Description { get; set; } 
     } 

и это XML отображение

<class name="Category" table="Categories"> 
    <id name="ID"> 
    <generator class="identity"/> 
    </id> 
    <map name="Resources" table="CategoriesResources" lazy="false"> 

     <key column="EntityID" /> 
     <index column="LangCode" type="string"/> 

     <composite-element class="Aca3.Models.Resources.CategoryResource"> 
     <property name="Name" column="Name" /> 
     <property name="Description" column="Description"/> 
     </composite-element> 
    </map> 
</class> 

и я хотел бы написать его свободный. я нашел что-то подобное, и я пытался с этим кодом:

HasMany(x => x.Resources) 
       .AsMap<string>("LangCode") 
       .AsIndexedCollection<string>("LangCode", c => c.GetIndexMapping()) 
       .Cascade.All() 
       .KeyColumn("EntityID"); 

, но я не знаю, как отобразить CategoryResource объект в качестве составного элемента внутри категории элемента.

Любые советы?

благодаря

ответ

4

Я думаю, что отображение вы ищете что-то вроде этого:

HasMany<CategoryResource>(x => x._resources) 
.AsMap<string>("LangCode") 
.KeyColumn("EntityID") 
.Table("CategoryResources") 
.Component(x => 
    { 
     x.Map(c => c.Name); 
     x.Map(c => c.Description); 
    }) 
.Cascade.All(); 
+0

Большое спасибо! оно работает ! –

+0

Ты звезда Крис. Я потратил большую часть своего дневного поиска на то, как это сделать с Fluent, и вы прибили его. Спасибо! – Dav

Смежные вопросы