【发布时间】:2009-10-28 19:59:31
【问题描述】:
我有这个方法,它将从 WCF 客户端调用,但对于我的测试,我使用的是本地“添加项目引用”。我收到一个错误,即在处理后无法调用 DataContext。
public IEnumerable<Server> GetServers()
{
// initialze to null
ServersDataContext sdc = null;
try
{
// get connected
using (sdc = GetDataContext())
{
// disable this deferred loading
sdc.DeferredLoadingEnabled = false;
var relations = from svr in sdc.Servers; // complex linq here
// return
return relations;
}
}
catch (Exception ex)
{
LogError(ex, "fwizs.Internal");
throw;
}
finally
{
if (sdc != null)
{
sdc.Dispose();
}
}
}
这是我使用该方法的方式,它给出了以下错误:“无法访问已处置的对象。”
if (da.GetServers()
.Select(sv => sv.ServerID == s.ServerID).Count() == 0)
{
// do work since we found it
}
对此返回的 IEnumerable 对象使用 .Select() 方法会尝试运行回数据库以进行选择。在为 WCF 序列化后,我认为这不会成为问题,但我希望我的本地测试能够正常工作。
【问题讨论】:
标签: c# .net linq linq-to-sql