gpt4 book ai didi

c# - LINQ TO SQL 我在这里遗漏了一些明显的东西吗?

转载 作者:太空宇宙 更新时间:2023-11-03 17:23:07 27 4
gpt4 key购买 nike

我有这个方法,将从 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 序列化后,我认为这不会成为问题,但我希望我的本地测试能够正常工作。

最佳答案

在方法中具体化您的查询,以确保在处理数据上下文之前实际执行数据库调用。

var relations = from svr in sdc.Servers;

return relations.ToList();

关于c# - LINQ TO SQL 我在这里遗漏了一些明显的东西吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1639726/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com