Entity Framework 4.1. Обновление сущности. Что означает это сообщение об ошибке? - PullRequest
1 голос
/ 27 января 2012

Я пытаюсь обновить сущность.Код частично работает, однако, кажется, что он не работает для определенных значений shopItem.GlaId

Gla сущности существуют с идентификаторами, которые не работают.

Я не вижу никакой разницы между работойценности и нерабочие.Ленивая загрузка работает для других свойств, но не для рассматриваемого свойства Gla.

Я получаю ошибку:

Оператор UPDATE конфликтует с ограничением FOREIGN KEY "OrderItem_Gla».Конфликт произошел в базе данных «PPPContext», таблице «dbo.Pap», столбце «Id».

(nB shopItem расширяет orderItem).

У меня проблемы с пониманием смыслаэтого сообщения об ошибке.

public ActionResult UpdateShopItem(ShopItem shopItem)
{
        var u = db.GetUser();
        var dbShopItem = db.ShopItems.Find(shopItem.Id)
        TryUpdateModel(dbShopItem);

        db.SaveChanges();

Ответы [ 2 ]

1 голос
/ 27 января 2012

Некая глупая ошибка, вызванная опечаткой.

в shopItem:

public virtual Pap Gla { get; set; }

это должно было быть:

public virtual Gla Gla { get; set; }

Другими словами, я неправильно указал тип одного из моих свойств.Ну, я надеюсь, что это поможет кому-то еще!

1 голос
/ 27 января 2012

Кажется, что таблица "dbo.Pap" имеет ссылку на "ShopItems" таблицу.

И кажется, что shopItem.Id , который вы передаете inside public ActionResult UpdateShopItem (ShopItem shopItem) `является нулевым или пустым.

Отладка здесь

 var u = db.GetUser();

и отметьте shopItem


РЕШЕНИЕ:

Убедитесь, что shopItem имеет правильный идентификатор или укажите ShopItem как обнуляемый объект

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