实体框架ToList()不起作用

时间:2011-10-15 04:57:56

标签: entity-framework entity-framework-4

我有一些像这样的代码:

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将填入发票。

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

有人可以向我解释一下吗?

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

请尝试这个:

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