How do I use LINQ-to-Entities to insert data into a specific table?

前端 未结 4 1594
自闭症患者
自闭症患者 2020-12-11 21:28

Question: what is the LINQ-to-Entity code to insert an order for a specific customer?

\"enter

相关标签:
4条回答
  • 2020-12-11 21:42

    L2E does not support set-based operations currently (update without select). See Use linq to generate direct update without select

    0 讨论(0)
  • 2020-12-11 21:43

    Your code isn't far off. Just change your second line to read as follows:

    Customer customer = ctx.Customer.FirstOrDefault(c => c.FirstName == "Bobby");
    if (customer != null)
    {
        //...
    

    Just replace the c.FirstName == "Bobby" with something that can strongly identify the customer you're looking for (e.g. c.Id == customerID if you already know what the ID is).

    0 讨论(0)
  • 2020-12-11 21:56

    Notice that Order has a Customer property. You don't have to add the Order to the Customer -- you can do it the other way around. So, instead of creating a new Customer, get the Customer using Linq, then add it to your new Order.

    using (OrderDatabase ctx = new OrderDatabase())
    {
        ctx.AddOrder(new Order()
        {
            OrderQuantity = 2,
            OrderDescription = "Widgets",
            Customer = ctx.Customers.First<Customer>(c => c.CustomerId == yourId)
        });
        ctx.SaveChanges();
    }
    
    0 讨论(0)
  • 2020-12-11 22:01

    I don't get what the problem is, exactly.

    var mycustomer = context.Customers.Where(x => x.id == 100).FirstOrDefault();
    if(mycustomer != null)
    {
      mycustomer.Orders.Add(myorder); 
    }
    context.SaveChanges();
    
    0 讨论(0)
提交回复
热议问题