Свободное владение IDictionary NHibernate с составным сопоставлением элементов - PullRequest
3 голосов
/ 26 марта 2010

у меня есть эти 2 класса:

    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 как составной элемент внутри элемента Category.

Есть совет?

спасибо

1 Ответ

4 голосов
/ 11 мая 2010

Я думаю, что карта, которую вы ищете, выглядит примерно так:

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();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...