Ошибка в отношениях один-ко-многим в Entity Framework - PullRequest
0 голосов
/ 23 августа 2011

У меня есть следующие таблицы

Users
----------
UserId (int)
Name (varchar)

Stores
----------
StoreId (int)
Name (varchar)
Owner (int) (FK to UserId in Users table)

и следующие объекты в файле edmx

User{
     properties
     UserId
     Name
}

Store{
     properties
     StoreId
     Name
     Owner
     navigation proeprties
     User
}

Я использую подход POCO. Сопоставление файла edmx с моими объектами POCO. Выборка пользователей работает нормально, но когда я пытаюсь создать нового пользователя, он успешно сохраняется в базе данных, но выдает следующее исключение

"Изменения в базе данных были успешно зафиксированы, но произошла ошибка произошло при обновлении контекста объекта. ObjectContext может быть в противоречивом состоянии. Внутреннее сообщение об исключении: Метаданные информация для отношения 'FK_Stores_Users_Owner' не может быть извлекаться. Если используются атрибуты сопоставления, убедитесь, что EdmRelationshipAttribute для отношения был определен в сборка. При использовании сопоставления на основе соглашения информация метаданных для отношений между отдельными объектами не может быть определена. Имя параметра: RelationsName "

1 Ответ

1 голос
/ 23 августа 2011

Я вижу, что вы используете EF 4.1 вместе с EDMX, тогда вы должны сами объявить ограничения Key либо использовать атрибуты, либо Fluent-API. Поскольку EF 4.1 не совместим с традиционной конфигурацией ограничений, определенной в XML.

Кроме того, убедитесь, что вы используете «ADO.NET DbContext Generator», а не «ADO.NET POCO Entity Generator».

...