NHibernate / свободное картирование NHibernate

Можно ли изобразить следующую ситуацию?

  1. Класс продукта (в настоящее время таблица)
  2. Класс учетной записи (в настоящее время таблица)
  3. Класс accountproduct (в настоящее время таблица соединения, но с дополнительной информацией, относящейся к конкретному продукту и учетной записи)

В идеале я хотел бы, чтобы accountproduct расширил продукт и был доступен из аккаунта как свойство Products.

Класс продукта будет существовать отдельно и обеспечивать свое собственное постоянство.


person Sam    schedule 09.09.2010    source источник


Ответы (1)


Как насчет следующего:

    public class AccountProduct
    {
        public virtual int Id { get; set; }
        public virtual DateTime Date { get; set; }
        public virtual string Comments { get; set; }

        public virtual Account Account { get; set; }
        public virtual Product Product { get; set; }

        public class AccountProductMap : ClassMap<AccountProduct>
        {
            public AccountProductMap()
            {
                Id(x => x.Id);
                Map(x => x.Date);
                Map(x => x.Comments);
                References(x => x.Account);
                References(x => x.Product);
            }
        }
    } 

    public class Product
    {
        public virtual int Id { get; set; }
        public virtual int Name { get; set; }

        public class ProductMap : ClassMap<Product>
        {
            public ProductMap()
            {
                Id(x => x.Id);
                Map(x => x.Name);
            }
        }
    }

    public class Account
    {
        public virtual int Id { get; set; }
        public virtual int Name { get; set; }

        public class AccountMap : ClassMap<Account>
        {
            public AccountMap()
            {
                Id(x => x.Id);
                Map(x => x.Name);
            }
        }
    }
person rebelliard    schedule 09.09.2010
comment
Спасибо Рафаэль. Знаете ли вы, возможно ли, чтобы класс AccountProduct наследовался от Product и чтобы класс Account имел свойство для AccountProducts, называемое Products? С точки зрения модели, в идеале я хотел бы просто предоставить Product и Account, где Account имеет свойство Products, которое ссылается конкретно на его продукты и включает дополнительные данные таблицы соединений (данные AccountProduct). Таблица соединений сама по себе не имеет цели. - person Sam; 09.09.2010