我有一些像这样的代码:
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将填入发票。
问题是发票正在返回一个空列表。
有人可以向我解释一下吗?
答案 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>();