C# web服务中的ObjectDisposedException

C# web服务中的ObjectDisposedException,c#,.net,web-services,exception-handling,C#,.net,Web Services,Exception Handling,我正在做一个网络服务项目,我有一个问题,我似乎无法解决。我认为这与延迟加载和我的using语句有关 这是我的密码: public List<MediumRole> MediumGetParticipants(int mediumId, int itemsPrPage, int page) { Medium medium = MediaHelper.GetMedium(mediumId); // Check if media not is null if (m

我正在做一个网络服务项目,我有一个问题,我似乎无法解决。我认为这与延迟加载和我的using语句有关

这是我的密码:

public List<MediumRole> MediumGetParticipants(int mediumId, int itemsPrPage, int page)
{
    Medium medium = MediaHelper.GetMedium(mediumId);

    // Check if media not is null
    if (medium == null) return null;

    return medium.MediumRoles.Page(page, itemsPrPage).ToList();
}
public List MediumGetParticipants(int-mediumId、int-itemsrpage、int-page)
{
Medium Medium=mediaheloper.GetMedium(mediumId);
//检查介质是否为空
if(medium==null)返回null;
返回medium.MediumRoles.Page(Page,itemsrpage.ToList();
}
我听到一个例外的说法

System.ObjectDisposedException:ObjectContext实例已被释放,不能再用于需要连接的操作。 有人吗


据我所知,
Medium
类具有对
MediumRoles
集合的延迟加载代理引用

由于
mediaheloper.getmedia(mediumId)
方法处理引用了
media
的数据库上下文而导致异常

要解决此问题,可以执行以下操作:

public static List<MediumRole> MediumGetParticipants(int mediumId, int itemsPrPage, int page)
    {
        Medium medium = MediaHelper.GetMedium(mediumId);
        // Check if media not is null
        if (medium == null) return null;
        using (var context = new DbContext())
        {
          context.Attach(medium);
          return medium.MediumRoles.Page(page, itemsPrPage).ToList();
        }
    }
publicstaticlist-MediumGetParticipants(int-mediumId、int-itemsrpage、int-page)
{
Medium Medium=mediaheloper.GetMedium(mediumId);
//检查介质是否为空
if(medium==null)返回null;
使用(var context=new DbContext())
{
上下文。附加(中等);
返回medium.MediumRoles.Page(Page,itemsrpage.ToList();
}
}

我猜您使用了实体框架,启用了延迟加载(这是默认设置),并在
GetMedium
方法中处理了EF的
ObjectContext
。当您访问
MediumRoles
属性时,EF希望延迟加载集合,但它不能,因为
ObjectContext
已被释放。要解决此问题,您可以更改代码,以便在调用
ToList
后释放上下文,或者在
GetMedium
方法中急切地加载
MediumRoles
集合。

您的using语句在哪里?您需要添加更多代码(GetMedium等)以获得答案