以下代码演示了我在使用 Entity Framework 时遇到的问题。假设“bob”在会话表中有许多记录。
我希望 sessionCountB 比 sessionCountA 小 1:
using (var context = new MyEFContext)
{
int sessionCountA = (from a in context.sessions
where a.user = 'bob' select a).Count();
sessions firstSession = (from a in context.sessions
where a.user = 'bob').FirstOrDefault();
context.sessions.DeleteObject(firstSession);
int sessionCountB = (from a in context.sessions
where a.user = 'bob' select a).Count();
// I expect sessionCountB == sessionCountA - 1
}
我知道 DeleteObject 只标记要删除的对象 - SaveChanges 在数据库上进行删除。
但是,在调用 SaveChanges 之前,不应该将已删除的对象排除在我对同一数据模型执行的进一步查询之外吗?