我正在使用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方法。
答案 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);