Нужна помощь в использовании сущностей для ASP.NET MVC 2 framework - PullRequest
4 голосов
/ 22 июля 2010

Я делаю сайт в ASP.NET MVC 2, используя C #.Я разработал базу данных с кучей таблиц, которые имеют много-много взаимосвязей, аналогично следующему:

GrandParent - много ко многим - Parent

и

Parent - многодля многих - Child

Я использовал Entity Framework для создания всех классов сущностей, и сейчас я работаю над функцией в классе репозитория, которая добавляет GrandParent.

Он пытается создать Child,добавьте его в Parent, затем добавьте родителя в GrandParent, а затем добавьте GrandParent в базу данных с помощью команды

entities.GrandParents.AddObject(newGrandParent);
entities.SaveChanges();

. В строке SaveChanges() происходит сбой с ошибкой:

Невозможно обновить EntitySet 'JunctionPartentsChilds', поскольку у него есть DefiningQuery, и в элементе ModificationFunctionMapping отсутствует элемент для поддержки текущей операции.

ПРАВКА: я могу исправить эту ошибку, удаливвсе элементы DefiningQuery в автоматически сгенерированном коде, и теперь я получаю сообщение об ошибке в той же строке, которая должна быть более описательнойно я все еще в растерянности.

Ошибка: Invalid object name 'JunctionPartentsChilds' и выдается исключение UpdatingException.

Есть идеи, что не так?Нужно ли добавлять данные в базу данных в особом порядке из-за отношений «многие ко многим»?

Спасибо !!

Ответы [ 3 ]

1 голос
/ 19 августа 2010

Если вы скопировали / вставили эту ошибку: Неверное имя объекта 'JunctionPartentsChilds'

Возможно, проблема заключается в неправильном написании слова "Parents" в названии таблицы соединений

0 голосов
/ 19 августа 2010

убедитесь, что GrandParents таблица как первичный ключ (личность) и перестройте модель

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

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

This is a line of code

, если вы нажмете кнопку с 101

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