您好我在.net项目中使用Entity Framework,之前我使用如下语法检索结果:
Using Context As New Model.DbContext
Dim Results = From X In Context.MyObjects.ToList
End Using
我已经读过根据需要创建和销毁DbContext对象而不是长时间运行上下文是首选模式。
所以当我有一个实体并且我打电话时会这样:
Dim Results = Me.MyObjects.ToList
这是怎么回事?是否有一些隐含的上下文创建?
其次,如果是这样的话,每次以这种方式从对象获取属性时,创建和拆除此上下文的计算成本是否昂贵?这是否会影响数据库?我认为对象不会被缓存,因为它们将保持打开的全局上下文。
任何想法都将不胜感激!
答案 0 :(得分:1)
表演问题。这是在这里回答的。 Is DbContext an expensive operation?
对于MyObjects.ToList,它看起来像是自动处理“上下文创建”。 http://blog.jongallant.com/2012/10/do-i-have-to-call-dispose-on-dbcontext.html#.U6WdzrGEeTw