我需要获得给定实体的当前上下文
我在2009年发现了这篇旧文章
鉴于我们现在已经坚定地在2012年,还有另一种方式吗?更新 - 这里有一些关于这里需要的细节
表1 - 星形模式的核心 标签nvarchar(300) Idx identity int
表2 - 标签参考 TagID标识int TagText nvarchar(50)
表3 - 表1和表之间的差异表2 IDX FK TagID FK
在Table1的Context.SavingChanges()事件中 解析标签并将其保存到Table2,并使用Table1
中的上下文将关系添加到Table3欢迎任何有关如何改善此事的指导
答案 0 :(得分:1)
如果您在SavingChanges事件处理程序中,则不需要从实体获取上下文,而是事件的发送方对象是ObjectContext。这是在这种情况下获取上下文的适当位置。例如:
public void context_SavingChanges(object sender, EventArgs e)
{
ObjectContext context = sender as ObjectContext;
// Do whatever you need to do...
}
答案 1 :(得分:0)
这篇文章展示了如何从IEntityWithRelationships获得,这是真的,但如果是的话。对于当前的Context来自实体的名称,不要以为你可以做....也许得到EntityContainerName:
public static string GetEntityContainerName(EntityObject entity)
{
string entityContainerName = entity.EntityKey.EntityContainerName;
return entityContainerName;
}
如果需要重用当前上下文,则需要将其作为方法中的参数传递。
问候