Какие NHibernate.Mapping.Attributes я должен использовать в своем классе для сопоставления словаря? - PullRequest
2 голосов
/ 23 марта 2010

Я использую NHibernate и сопоставляю свои объекты напрямую с атрибутами. Я видел подобные вопросы, но в большинстве случаев люди используют файлы сопоставления ... или они дают ответы со ссылками, которые больше не существуют :) Для следующего класса, какие атрибуты я должен добавить для свойства Table, IDictionary? Я думаю, это что-то вроде [Карта], но с какими атрибутами и / или элементами? Где я могу найти документацию?

[Class(Table = "SpecificitySets", Name = "ZslSpecificityTable")]
public class SpecificityTable
{
    [Id(0, TypeType = typeof(ulong), Name = "Id")]
    [Generator(1, Class = "native")]
    public uint Id 

    [Map(Name = "specificityMapping", Table = "SpecificityMapping")]
    // and then ??
    public virtual IDictionary<string, double> Table { get; private set; }

    // ...
}

Ответы [ 2 ]

3 голосов
/ 24 марта 2010

после некоторых попыток это было не так сложно на самом деле:

[Class(Table = "SpecificitySets", Name = "ZslSpecificityTable")]
public class SpecificityTable
{
    [Id(0, TypeType = typeof(ulong), Name = "Id")]
    [Generator(1, Class = "native")]
    public uint Id 

    [Map(1, Name = "Table", Table = "SpecificityMapping")]
    [Key(1, Column = "SpecTableId")]
    [Index(3, Column = "Term", Type="string")]
    [Element(4, Column = "Value", Type="double")]
    public virtual IDictionary<string, double> Table { get; private set; }

    // ...
}

1

1 голос
/ 24 марта 2010

Вам, вероятно, не понравится ответ, но ... использование NHibernate.Mapping. Атрибутировать его не рекомендуется.

XML-файлы являются наиболее гибким и документированным подходом, FluentNHibernate - это альтернатива, а ConfORM - это совершенно другой способ рассмотрения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...