15

我正在尝试找到正确的语法来为数据库播种测试数据。我的产品表有一个外键。它是类别。我已经在数据库中植入了类别的值,但坚持如何将这种关系添加到产品中。我试过这种方法无济于事。

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")
    }
});

谁能指出我正确的方向?

4

1 回答 1

28

我发现为了完成Category的外键是对上下文进行保存更改。然后我能够查询 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
    });
于 2013-04-19T03:54:56.683 回答