Сбой проверки параллелизма с иерархическими данными EF 4.0 - PullRequest
0 голосов
/ 04 июля 2010

У меня проблема с Entity Framework 4.0

У меня есть иерархическая таблица Category: Id, Name, ParentCategory_Id, timestamp

Поле «отметка времени» помечено как «Режим параллелизма» = «Исправлено»

И я использую объект самообследования "Категория" для управления объектом категории в моем приложении MVC.

Ситуация:

  1. Я создаю STE "NewCategory",
  2. установить поле Имя = 'бла-бла'
  3. создать новую STE "ParentCategory", например: var ParentCategory = new Category{Id=45}; ParentCategory.MarkAsUnchanged(); NewCategory.Parent = ParentCategory;
  4. Вызовите метод ApplyChanges () в моем контексте STE и вызовите SaveChanges ()
  5. Запрос: «Обновить категорию, задать имя = ....» !!!!!!

Если я сделаю NewCategory.Parent = null ИЛИ установлю "Concurrncy Mode" = "Node" в схеме модели, все будет в порядке.

Как использовать иерархические данные с проверкой параллелизма?

1 Ответ

0 голосов
/ 06 июля 2010

Я решил эту проблему. Решение состоит в том, что EF4.0 может управлять этими ситуациями, только если вы будете использовать свойства FK Assotiation.

В этом примере правильный способ сделать:

1) Создать самоассоциацию в категории сущности в модели edmx. В «Ссылочном ограничении» создайте ссылку на родительский объект через свойство ParentCategory_Id.

2) Создать новый экземпляр категории STE.

3) Установить отношение:

NewCategory.ParentCategory_Id = 45;

4) ApplyChanges, SaveChanges.

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