Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用LINQ to实体将数据插入到特定表中?_C#_Linq_Linq To Entities - Fatal编程技术网

C# 如何使用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”替换为能够强烈识别您正在寻找的客户的东西(例

问题:为特定客户插入订单的LINQ to实体代码是什么

更新

以下是解决方案(请参阅下面提交的答案之一,以获得更为简洁的解决方案):


你的代码离我们不远了。只需将第二行改为:

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();