考虑客户与客户之间的许多建模。产品。客户正试图购买id为146的产品。即产品已存在于数据库中。我需要做的就是将产品ID与数据库中的客户相关联。
理想情况下,代码应该将产品ID与Customer对象关联,而不是如下所示往返数据库:
public async Task<int> BuyProduct()
{
using (ProductsContextContainer ctx = new ProductsContextContainer())
{
var newCustomer = new Customer()
{
Id = r.Next(),
FirstName = "John Doe",
Products = new List<Product>
{
new Product()
{
Id = 146
}
}
};
ctx.Customers.Add(newCustomer);
return await ctx.SaveChangesAsync();
}
}
然而,与客户上面的代码一起尝试插入带有id。
的新产品因此我必须明确地获取Products对象&amp;然后插入客户。
var boughtItem = ctx.Products.FirstOrDefault(p => p.Id == 146);
var newCustomer = new Customer()
{
Id = r.Next(),
FirstName = "John Doe",
Products = new List<Product>
{
boughtItem
}
};
在我的脑海中,我可以猜测我需要使用Entry方法来关联现有产品。但不太明白如何。你能帮忙吗?