Тестовые случаи NUNIT для добавления и удаления таблицы со многими отношениями в ядре структуры сущностей - PullRequest
0 голосов
/ 09 февраля 2020

У меня есть таблица типа

Class Author{
int AuthorId;
string Nmae;
}
Class book {
int bookid;
Author Author;
}

И теперь я собираюсь добавить новую запись в книгу.

Если я добавлю book.Author.Add(newAuthor), будет newAuthor автоматически добавить в Authors таблицу?

Или я должен написать это вместо этого?

dbcontext.Author.Add(author)

вместе с

book.Author.Add(newAuthor)

Когда я запускаю модульные тесты, это приводит к ошибкам с Attempted to update or delete an entity that does not exist in the store.

Однажды я написал dbcontext.Author.Add(author) и ошибки не было.

Другой метод, который я попробовал, был в [SetUp], где я добавил автора в таблицу Authors , Затем я добавил этого автора в таблицу books. Но потом я получил

Экземпляр типа сущности Author не может быть отслежен, потому что другой экземпляр с таким же значением ключа для {'AuthorId'} уже отслеживается. При подключении существующих объектов убедитесь, что подключен только один экземпляр объекта с данным значением ключа. Подумайте об использовании DbContextOptionsBuilder.EnableSensitiveDataLogging для просмотра конфликтующих значений ключа.

Может кто-нибудь помочь мне с этим?

Ответы [ 2 ]

0 голосов
/ 27 февраля 2020

Извините за задержку обновления. Я исправил проблему. Класс Author {int AuthorId; строка Nmae; } Классная книга {int bookid; Автор Автор; }

, прежде чем я добавил dbcontext.Books.Add (книга)

Я добавил dbcontext.Author.Add (newauthor)

, и он работал нормально, не создавая никакой дополнительной записи, поскольку он имел только Id в качестве внешнего ключа, а сущность автора не добавляется, как в качестве реляционной сущности.

0 голосов
/ 26 февраля 2020

У меня та же проблема

Не удается отследить экземпляр типа сущности "Member", так как уже отслеживается другой экземпляр со значением ключа "{Id: 1}". При подключении существующих объектов убедитесь, что присоединен только один экземпляр объекта с данным значением ключа.

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