没有这样的事件/回调可用。 EF ObjectContext
只提供ObjectMaterialized
和SavingChanges
事件。首先可以用于在实体从数据库物化(加载)时作出反应,其次可以用于在保存更改之前处理任何事情(类似于重写SaveChanges
方法)。
例子:
public void SavingChanges(object sender, EventArgs e)
{
ObjectContext context = (ObjectContext)sender;
var entities = context.ObjectStateManager
.GetObjectStateEntries(EntityState.Added)
.Where(e => !e.IsRelationship)
.Select(e => e.Entity)
.OfType<MyEntity>();
// Now you have all entities of type MyEntity which will be added
// You can use similar approach for other type of entities or
// modified entities or deleted entities
}
EF不提供任何类型的全球环境/命名范围。您必须始终确保您的查询包含所有条件。例如,您可以创建自定义扩展方法和,而不是默认查找使用扩展方法,这将增加你所有的附加条件
例子:
public static MyEntity FindWithCondition(this IQueryable<MyEntity> query, int id)
{
return query.Where(...).FirstOrDefault(e => e.Id == id);
}