实体框架 ToList() 不起作用



我有一些这样的代码:

var db = new MYContext();
var invoice = new Invoice { InvoiceId = 7 };
db.Set<Invoice>().Add(invoice);
var invoiceFound = db.Set<Invoice>().Find(7);
var invoices = db.Set<Invoice>().ToList();

invoiceFound用发票填充。

问题是发票返回一个空列表。

有人能给我解释一下吗?

如果我没记错的话,调用ToList()会调用数据库并返回结果集。由于在调用ToList()之前没有保存更改(添加发票),因此您添加的发票将不在结果集中。DbSet上有一个Local属性,它返回内存中的发票集合。这个集合将包含您添加的Invoice,即使您没有SaveChanges()。

请试试这个:

var db = new MYContext();
var invoice = new Invoice { ID = 7 };
db.AddToInvoice(invoice);
db.SaveChanges();
var qry = from item in db.Country select item;
IList<Invoice> list = qry.ToList<Invoice>();

最新更新