Вопрос : Проблема тайника Nhibernate пока использующ пуски MS-SQL

Hey!

I am using Nhibernate с беглый, упорствовать база данных MS SQL 2008 курьерская в деле application.

I имеет названный тип Получением которое содержит список при много названных предметов ReceiptItems. потребитель
The может создать получение, добавить Receiptitems к ему, и отредактировать его покуда своя маркированная часть Finished.
This работает наилучшим образом и сохраняет к db правильно.
Now для проблемы:

I также имеет пуск на получении таблицы sql, том пожары если введенное. Законченный цены fetches пуска true.
The новые от «таблицы поставщика», и уточняют цены для всего ReceiptItems,
in ReceiptItems table.

When вызывая then
transaction
and
session.SaveorUpdate (value). Поручите () причины latter

the исключение:
StaleObjectStateException
Row было обновлено или после того как я уничтожено другими трудыами (или составлять карту unsaved-значения был неправильно) в ReceiptItems



Removing ofcourse пуска фиксирует проблему, но мне нужно она уточнить цены. Любая дорога для nhibernate проигнорировать
error, и освежают свой тайник после пожаров пуска? определения примера типа




straightforward с беглый mappings: class= " lineNumbers " >
1 >

 общественное получение типа
    {

        общественное получение () {}
        /// Identificator///
        общественное фактически удостоверение личности int {получите; приватный комплект; }
         /// если законченный поистине, cant редактируют данные 
        общественное фактически законченное булевское {получите; комплект; }
        Items /// этого получения 
        общественные фактически детали IList {получите; комплект; }
    }

    /// Mapping для NHibernate Fluent///
    общественный тип ProdajaMap: ClassMap
    {
       
        общественное ReceiptMap ()
        {
            Таблица («получение»);
            OptimisticLock.All ();
            DynamicUpdate ();
            Удостоверение личности (=> x.Id x);
            Карта (=> x.Finished x);
            HasMany (=> x.Items) .AsBag x () .KeyColumn («Receipt_ID»);
        }
    } class= " lineNumbers " >
1 >


общественный тип ReceiptItem
    {

        общественное ReceiptItem () {}

        общественное фактически удостоверение личности int {получите; приватный комплект; }
        Id /// получения 
        общественный фактически int Receipt_ID {получите; комплект; }

        цена  /// более Supplier
        общественное фактически десятичное цена {получите; комплект; }
        рабат  /// более Supplier
        общественный фактически десятичный рабат {получите; комплект; }
    }

    /// Mapping для NHibernate Fluent///
    общественный тип ReceiptItemMap: ClassMap
    {
        общественное ReceiptItemMap ()
        {
            Таблица («ReceiptItems»);
            OptimisticLock.All ();
            DynamicUpdate ();
            Удостоверение личности (=> x.Id x);
            Карта (=> x.Receipt_ID x). Колонка («Receipt_ID»);
            Карта (=> x.Price x);
            Карта (=> x.Discount x);

        }
    } class= " ясное " >



Thanks


class=

Ответ : Проблема тайника Nhibernate пока использующ пуски MS-SQL

Я не попытал бы совместить оба пуска и пользу слоя данных как nhibernate - вы всегда идете получить проблемы синхронизации. nHibernate предназначено управлять вашими данными - и ваш слой дела должен управлять процессами как уточнение ваших цен. Лично я не иду около пусков для любой логики дела - для ревизовать возможно, а ничего еще. Я думаю они затемняет логику дела и делает ее nigh на невозможной для того чтобы снабдить другие разрешения Кодего для управлять данными - по мере того как вы находите.
Почему не двиньте ваше Кодего пуска в, котор хранят процедуру и вызовите процедуру изнутри объема трудыов уточнения если «закончил» флаг будет поистине? Я управлял бы этим в пределах слоя дела, но вы smogли двинуть это к слою данных если вы желаете.

Тим
Другие решения  
  •  Как я добавляю кнопки на форме PDF для того чтобы добавить/извлекаю рядки данных?
  •  Шнур ошибки в блоке задвижки?
  •  сколько вариант сервера SQL на одной машине
  •  Внешний вид 2007 не может архивный файл открытой сети сохраненный
  •  Активно директория DNS записывает вопрос
  •  Отчет о доступа 2010 экспорта к CSV с коллекторами?
  •  Прокладчик OCE 9400 не начинает
  •  как добавить десятичное место в формуле в отчете о кристалла seagate
  •  Windows XP и Мичрософт Оутлоок и проблемы установителя Windows
  •  VB6 к VS2010 - консультации тренировки?
  •  
    programming4us programming4us