Подтвердить что ты не робот

Заселение базы данных с помощью кода First Entity Framework - синтаксис внешнего ключа

Я пытаюсь найти правильный синтаксис для семени базы данных с тестовыми данными. У меня есть внешний ключ к моей таблице продуктов. Это категория. Я засеял базу данных значениями для категорий, но зациклился на том, как добавить эту связь с продуктом. Я пробовал этот путь безрезультатно.

context.Categories.AddOrUpdate(x => x.Name,
    new Category
    {
        Name = "Fruit"
    });

context.Products.AddOrUpdate(x => x.Name,
    new Product
    { 
       Name = "Cherries",
       Description = "Bing Cherries",
       Measure = "Quart Box",
       Price = 1.11M,
       Category = context.Categories.FirstOrDefault(x => x.Name == "Fruit")
    }
});

Может ли кто-нибудь указать мне в правильном направлении?

4b9b3361

Ответ 1

Я обнаружил, что для выполнения внешнего ключа из категории необходимо сохранить изменения в контексте. Затем я смог запросить контекст для categoryId и сохранить его в CategoryId на продукте.

context.Categories.AddOrUpdate(x => x.Name,
        new Category
        {
            Name = "Fruit"
        });

            context.SaveChanges();

            context.Product.AddOrUpdate(x => x.Name,
            new Product { 
Name = "Cherries",
Description = "Bing Cherries",
Measure = "Quart Box",
Price = 1.11M,
CategoryId = context.Categories.FirstOrDefault(x => x.Name == "Fruit").Id
}