实体保存更改不更新数据库

本文关键字:数据库 更新 保存更改 实体 | 更新日期: 2023-09-27 17:56:05

我正在学习使用C#中的实体框架的教程,并遇到了许多问题。

的第一个问题是我无法访问.Load() 或 addObject() 方法通过我的实体。 经过多次搜索,我发现到目前为止似乎有所帮助:

.Net Framework 4.5 AddObject() 未出现

继续学习本教程后,我现在在尝试将新记录保存到数据库时遇到问题。

        using (NORTHWNDEntities ctx = new NORTHWNDEntities())
        {
            var customers = from c in ctx.Customers.Include("Orders")
                            where c.City == "London"
                            select c;
            //adds to customer
            Customer newCustomer = new Customer { CustomerID = "JoeN", City = "London", ContactName = "Joe N", CompanyName = "Acme" };
            ctx.Customers.AddObject(newCustomer);
            ctx.SaveChanges();

            foreach (Customer customer in customers)
            {
                //customer.Orders.Load();
                Console.WriteLine("Customer {0} has {1} orders {2}", customer.ContactName, customer.Orders.Count(), customer.Phone);
            }

当我的代码运行时,它会显示新添加的客户,但数据库不会更新。

我已经尝试了实体框架不保存对象的建议解决方案我的实体中没有 addTo 方法。

实体保存更改不更新数据库

在 DbContext 上使用 Create 更合适,可能会解决您的问题:

Customer newCustomer = ctx.Customers.Create();
newCustomer.CustomerID = "JoeN";
..etc, etc
ctx.Customers.Add(newCustomer);
ctx.SaveChanges();

与其ctx.Customers.AddObject(newCustomer);不如尝试ctx.Customers.Attach(newCustomer);