2012-01-31 69 views
0

考虑到我使用代码等(使用或不使用(考虑到使用(??)可配置上下文)):以后可以从对象中提取实体框架的上下文吗?

IQueryable<Konsultanci> listaKonsultantow; 
using (var context = new EntityBazaCRM(Settings.sqlDataConnectionDetailsCRM)) { 
     listaKonsultantow = from k in context.Konsultancis 
                select k; 
} 

我可以以某种方式提取上下文从Konsultanci对象使用稍后所以就不会不需要在课堂上存储上下文?

foreach (Konsultanci test in listaKonsultantow) { 
     // get context here? 
} 
+0

那些POCO? – SLaks 2012-01-31 21:48:29

+0

我从SQL Server中加载这些对象。这是继续http://stackoverflow.com/questions/9086722/can-entity-framework-context-be-reused-all-the-time-in-code和http://stackoverflow.com/questions/9083709/这两个对象之间的关系不能被定义因为它们被攻击了很多错误之后,我定义了private private readonly EntityBazaCRM context = new EntityBazaCRM(Settings.sqlDataConnectionDetailsCRM);'在顶部它解决了我的问题。但我宁愿从对象I中获取上下文,而是使用上下文中定义的上下文。 – MadBoy 2012-01-31 21:50:06

回答

1

由于您在使用块的末尾处理了上下文,所以您甚至不应该尝试。

+0

如果我不使用'使用'会怎么样?但是'EntityBazaCRM context = new EntityBazaCRM(Settings.sqlDataConnectionDetailsCRM);'? – MadBoy 2012-01-31 21:48:11

+0

@MadBoy,你打算什么时候处理你的环境呢? – 2012-01-31 21:57:10

+0

在GUI关闭?我试图解决像我在这里描述的问题出现的问题(http://stackoverflow.com/questions/9083709/the-relationship-between-the-two-objects-cannot-be-defined- because-they-是 - 阿塔)。与之战斗5个小时后,将上下文置于顶部并重新使用它解决了问题。所以现在我试图找到最佳方法。除非你有办法解决这个问题,否则我可以重新使用'using'。 – MadBoy 2012-01-31 22:03:28

1

将上下文作为关注点分离将导致许多您感兴趣的设计模式的路径。您一定要查看存储库和依赖注入(统一是MS的DI容器,它有助于管理依赖性,例如您所拥有的数据上下文问题)。如果这些主题超出了您的项目范围,那么重新输入您的使用说明可能不是问题。

相关问题