Как можно сопоставить один пользовательский объект с некоторыми таблицами базы данных в Entity Framework? - PullRequest
0 голосов
/ 21 мая 2018

У меня есть база данных первой модели в моем проекте.3 таблицы Document, DocumentItem и Product импортируются из базы данных.enter image description here Я хочу создать новый объект с именем Order, который объединит некоторые поля этих трех таблиц базы данных.Я создал эту сущность, как вы видите на первом рисунке, и заполнил ее отображение таблицы, как вы видите на втором рисунке.enter image description here После сборки проекта я получаю следующие ошибки:

Severity    Code    Description Project File    Line    Suppression State
Error       Error 3025: Problem in mapping fragments starting at line 193:Must specify mapping for all key properties (Product.Id) of table Product.    EFTest  C:\Users\Me\documents\visual studio 2015\Projects\EFTest\EFTest\Data\EfTest.edmx    194 
Error       Error 3025: Problem in mapping fragments starting at line 186:Must specify mapping for all key properties (Document.Id) of table Document.  EFTest  C:\Users\Me\documents\visual studio 2015\Projects\EFTest\EFTest\Data\EfTest.edmx    187 
Error       Error 3024: Problem in mapping fragments starting at line 193:Must specify mapping for all key properties (Orders.Id) of the EntitySet Orders.  EFTest  C:\Users\Me\documents\visual studio 2015\Projects\EFTest\EFTest\Data\EfTest.edmx    194 
Error       Error 3024: Problem in mapping fragments starting at line 186:Must specify mapping for all key properties (Orders.Id) of the EntitySet Orders.  EFTest  C:\Users\Me\documents\visual studio 2015\Projects\EFTest\EFTest\Data\EfTest.edmx    187 

Я не смог найти источник проблемы.Как я могу решить эти ошибки?

1 Ответ

0 голосов
/ 26 мая 2018

Ошибка говорит , что в вашем проекте отсутствует внешний ключ!

Учитывая, что вы знаете Вы не можете просто добавить таблицы избазы данных в вашу модель, а затем создать новую связь в модели.По умолчанию он использует независимую ассоциацию, которая должна быть сопоставлена ​​с его аналогом базы данных (например, отношение должно существовать и в базе данных).Вы должны смоделировать свое отношение как FK ассоциацию, но она допускает только один-к-одному и один-ко-многим . Другими словами , когда вы добавляете новую таблицу с пометкой «Включить столбцы внешнего ключа в модель» в EF4, и таблица не содержит никаких связей внешнего ключа, тогда вы пытаетесь добавить ассоциацию, которая будет запускатьсяэта ошибка.Решение состоит в том, чтобы определить ограничения в модели EF4, которых нет в базе данных.

Иногда у нас возникают нежелательные конфликты, которые могут вызвать такие проблемы, когда вы можете удалить таблицу изРазработчик EF, а также вручную удалите все, что связано с этой таблицей (в файле XML), затем снова добавьте таблицу и снова установите правильные сопоставления.

...