Ошибка Entity Framework 4: невозможно обновить EntitySet, поскольку в нем есть DefiningQuery

Хорошо, вот сценарий. У меня есть 3 таблицы. Одна называется aspnet_Users, одна называется Категории, а таблица связывания - User_Categories. aspnet_Users и Категории имеют первичные ключи (UserId и ID соответственно). В связывающей таблице есть только два столбца: CategoryID и UserId, и для каждого столбца настраиваются отношения внешнего ключа, И у меня есть уникальная настройка ключа для двух столбцов в User_Categories. Это устанавливает отношения "многие ко многим" между таблицей aspnet_Users и таблицей категорий. Я сгенерировал файл edmx для своих сущностей из этой настройки базы данных, и все выглядит идеально и работает почти для всех операций.

Я хочу добавить новую категорию из формы (которая работает идеально сам по себе), а также, в то же время, связать конкретного пользователя с этой недавно отправленной категорией. Когда я пытаюсь сделать это, я получаю сообщение об ошибке в строке темы. Вот код, который я использую, чтобы попробовать это ( ctx - это мое право объект контекста ies):

public ActionResult Create(Category category, Guid userId)
{
    aspnet_Users user = ctx.aspnet_Users.SingleOrDefault(x => x.UserId == userId);
    ctx.Categories.AddObject(category);
    user.Categories.Add(category);
    ctx.SaveChanges();;
    return RedirectToAction("Index");
}

Почему это не работает?

15
задан Drew Noakes 6 September 2010 в 20:43
поделиться