Нарушение ограничения PRIMARY KEY на связанную запись при добавлении записи с использованием структуры объекта - PullRequest
0 голосов
/ 03 июня 2011

У меня есть таблица с именем farmers.Каждый фермер имеет указанную страну, которая является обязательной.

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

Нарушение ограничения PRIMARY KEY 'PK_Country'.Невозможно вставить дубликат ключа в объект 'dbo.Country'.Заявление было прекращено.

Может кто-нибудь посоветовать мне, что я делаю неправильно?вот код для вставки:

        newFarmer.Guid = Guid.NewGuid();
        ents.Farmer.AddObject(newFarmer);
        ents.SaveChanges();
        return newFarmer;

Я даже проверил состояние страны и там написано без изменений.

1 Ответ

1 голос
/ 18 ноября 2011

Одним из возможных решений является то, что Entity Framework не понимает, что первичный ключ вашей сущности также является идентификатором и должен быть автоматически увеличен.У меня была такая же проблема в приложении, использующем EF 4.1 с базой данных первым.Чтобы решить эту проблему, мне нужно было: *

  • убедиться, что первичный ключ моей сущности имеет имя "ID" (чтобы не помещать декоратор [Key] над моим классом Model.
  • Убедитесь, что для свойства "Identity" вашей системы баз данных (в моем случае SQL Server) установлено значение "Yes".

Затем мой EF4.1 смог выполнить вставку и обновлениеиз моих сущностей.

Надеюсь, это поможет!

...