实体saveChanges不更新数据库

时间:2015-06-13 12:29:32

标签: c# entity-framework

我正在使用C#中的实体框架进行教程并遇到一些问题。

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

.Net Framework 4.5 AddObject() does not appear

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

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

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

我在Entity Framework does not save object上尝试了建议的解决方案 我的实体中没有addTo方法。

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

而不是ctx.Customers.AddObject(newCustomer);如何尝试ctx.Customers.Attach(newCustomer);