Заполнить данные «многие ко многим» в Entity Framework - PullRequest
8 голосов
/ 19 июня 2011

Сначала я использую код и имею отношение многие ко многим между названиями книг и категориями. Каков наилучший способ посева данных во время разработки? Если я добавлю две книги в одну категорию, логика Seed добавит категорию дважды в таблицу категорий. Я могу добавить категории отдельно в таблицу «Категория», но тогда как мне указать, что существующие записи категорий в коллекции книг ключевых слов.

1 Ответ

9 голосов
/ 19 июля 2011

Я считаю, что эта запись в блоге показывает мне путь http://blog.goranobradovic.com/2011/06/asp-net-mvc3-app-part-1-entity-framework-and-code-first/comment-page-1/#comment-1663

Ключ заключается в том, чтобы устанавливать объекты категории отдельно от создания книги, а затем использовать эти объекты при создании коллекции ICollection

var catCSharp = new Category {Name="CSharp"};
var catEF = new Category {Name="Entity Framework"};
var Categories = new List<Category> () {catCSharp, catEF};

var Books = new List<Book>();
Books.Add(new Book {Title="Entity Framework", 
                    Categories=new List<Category>() {catCSharp, catEF}};
Books.ForEach(b => context.Books.Add(b));

Несмотря на то, что я заполняю только контекст.Рецепты DbSet, заполняются таблица категорий и таблица CategoryRecipes.

Спасибо, Горан Обрадович

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