Какое отображение nhibernate используется для string [] в сущности? - PullRequest
1 голос
/ 22 января 2011

У меня странная ситуация, которую мне нужно сохранить:

public class Person
{
  public string[] Nicknames { get; set; }
}

Какое отображение и структура таблицы лучше всего использовать для сохранения этого массива строк?

Ответы [ 2 ]

3 голосов
/ 22 января 2011

Вы можете сопоставить массивы напрямую, но вам понадобятся несколько дополнительных столбцов:

<!-- can live w/o orderby -->
<array name="Nicknames" table="Nicknames" order-by="indexColumn ASC"> 
  <key column="keyColumn"/>
  <index column="indexColumn"/> <!-- position in array -->
  <element column="nickname" type="String"/>
</array>

Если у вас нет других нужных вам столбцов, я, вероятно, сохранил бы их как обычный пакет или список и выставил бы их как массив из этого объекта.

2 голосов
/ 23 января 2011

Вы можете использовать некоторую вашу логику для достижения того же самого результата правильно ... возможно, добавив свой собственный разделитель между псевдонимами, а затем разделите его по этому разделителю, как только вы прочитаете его в память.

public class Person
{
  public string Nicknames { private get; set; }

  public string[] ArrayOfNicknames
  {
    get
    {
        return Nicknames.Split(<your_delimiter>);
    }
  }
}
...