Обновление Nhibernate - Решения для обновления детей на объекте? - PullRequest
0 голосов
/ 16 октября 2010

Нужен совет, как обновить коллекцию на объекте. В веб-приложении - у нас есть список с несколькими выборками, позволяющий пользователю назначать и удалять дочерние объекты из списка доступных объектов. Пользователь выбирает соответствующих детей для связи с родителем. продукт с несколькими категориями, к которым он может принадлежать. Когда пользователь удовлетворен, он отправляет, а мы обновляем сущности.

Какой способ обновления (удаление удаленных дочерних элементов, добавление новых дочерних элементов) в коллекцию является предпочтительным с учетом производительности. Я не хотел бы запускать несколько SQL-операторов для выборки каждого дочернего элемента и добавления его к родительскому элементу.

Приветствия

Приложенные сопоставления:

 public class ParentMap : EntityMapping<Parent>
    {
        public ParentMap()
        {
            Map(x => x.Name);
            HasMany(x => x.Children)
                .Cascade.AllDeleteOrphan()
                .Access.LowerCaseField(Prefix.Underscore);
        }
    }

    public class ChildMap : EntityMapping<Child>
    {
        public ChildMap()
        {
            References(x => x.Parent);
        }
    }

 public abstract class EntityMapping<TEntity> : ClassMap<TEntity> where TEntity : EntityBase
    {
        protected EntityMapping()
        {
            Id(x => x.Id, "Id")
                .UnsavedValue("00000000-0000-0000-0000-000000000000")
                .GeneratedBy.GuidComb();
            OptimisticLock.Version();
            Version(entity => entity.Version);
        }
    }

1 Ответ

0 голосов
/ 16 октября 2010

Установить каскадные отношения между родительскими и дочерними объектами и заставить их воздействовать на все операции, такие как обновление, удаление и т. Д. Вы должны определить каскадное поведение в файлах отображения HBM.Для получения дополнительной информации: http://nhibernate.info/doc/nh/en/index.html#mapping-declaration-mapping

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