C# 如何使用LINQ to实体将数据插入到特定表中?
问题:为特定客户插入订单的LINQ to实体代码是什么 更新 以下是解决方案(请参阅下面提交的答案之一,以获得更为简洁的解决方案):C# 如何使用LINQ to实体将数据插入到特定表中?,c#,linq,linq-to-entities,C#,Linq,Linq To Entities,问题:为特定客户插入订单的LINQ to实体代码是什么 更新 以下是解决方案(请参阅下面提交的答案之一,以获得更为简洁的解决方案): 你的代码离我们不远了。只需将第二行改为: Customer customer = ctx.Customer.FirstOrDefault(c => c.FirstName == "Bobby"); if (customer != null) { //... 只需将c.FirstName==“Bobby”替换为能够强烈识别您正在寻找的客户的东西(例
你的代码离我们不远了。只需将第二行改为:
Customer customer = ctx.Customer.FirstOrDefault(c => c.FirstName == "Bobby");
if (customer != null)
{
//...
只需将
c.FirstName==“Bobby”
替换为能够强烈识别您正在寻找的客户的东西(例如c.Id==customerID
,如果您已经知道Id是什么)。L2E目前不支持基于集合的操作(更新时不选择)。请参见注意,订单具有客户属性。您不必向客户添加订单——您可以用另一种方式来完成。因此,与其创建新客户,不如使用Linq获取客户,然后将其添加到新订单中
using (OrderDatabase ctx = new OrderDatabase())
{
ctx.AddOrder(new Order()
{
OrderQuantity = 2,
OrderDescription = "Widgets",
Customer = ctx.Customers.First<Customer>(c => c.CustomerId == yourId)
});
ctx.SaveChanges();
}
使用(OrderDatabase ctx=new OrderDatabase())
{
ctx.AddOrder(新订单()
{
订单数量=2,
OrderDescription=“Widgets”,
Customer=ctx.Customers.First(c=>c.CustomerId==yourId)
});
ctx.SaveChanges();
}
我不明白到底是什么问题
var mycustomer = context.Customers.Where(x => x.id == 100).FirstOrDefault();
if(mycustomer != null)
{
mycustomer.Orders.Add(myorder);
}
context.SaveChanges();
当然,我可以使用ADO.NET来完成这项工作,但我不想通过处理主键/外键来“污染”我的模型。请注意,上面的代码没有主键/外键-LINQtoEntities为我处理这个问题。我不认为他要求在没有select的情况下进行更新。他提到了一个LINQ查询,首先检索正确的客户;如果你想搜索其他条件,你不需要你的ID就可以拥有CustomerId。太棒了,这很好用。我必须先把答案给你,因为你答对了。非常非常感谢!
var mycustomer = context.Customers.Where(x => x.id == 100).FirstOrDefault();
if(mycustomer != null)
{
mycustomer.Orders.Add(myorder);
}
context.SaveChanges();