沒有這樣的事件/回調可用。 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);
}