Mar*_*gan 3 c# asp.net-mvc asp.net-web-api
我喜欢在using语句中包含我的数据访问,以使自己对垃圾收集感觉良好.我正在运行Visual Studio 2013 Preview并以.NET 4.5为目标.我有一个叫做WordsController的ApiController:
public class WordsController : ApiController
{
// GET api/<controller>
public IEnumerable<Keyword> Get()
{
using (TestDataContext dc = new TestDataContext())
{
return dc.Keywords;
}
}
}
Run Code Online (Sandbox Code Playgroud)
我收到一个错误,告诉我在访问数据之前已经处理了datacontext.
将代码更改为此工作原理:
public class WordsController : ApiController
{
// GET api/<controller>
public IEnumerable<Keyword> Get()
{
TestDataContext dc = new TestDataContext();
return dc.Keywords;
}
}
Run Code Online (Sandbox Code Playgroud)
为什么不在usingDataContext 时才能工作?
return dc.Keywords
实际上并没有在那里执行查询/实现结果,所以当实际枚举结果时(因此它尝试运行查询),上下文已经被处理掉了.
而是尝试:
using (TestDataContext dc = new TestDataContext())
{
return dc.Keywords.ToArray(); // execute the query and materialise NOW
}
Run Code Online (Sandbox Code Playgroud)
只是在这里添加适当的术语和参考:延期执行
| 归档时间: |
|
| 查看次数: |
3601 次 |
| 最近记录: |