gpt4 book ai didi

entity-framework - ObjectContext 实例已被释放,不能再用于需要连接的操作

转载 作者:行者123 更新时间:2023-12-04 08:32:21 24 4
gpt4 key购买 nike

由于 EF 的更改跟踪和延迟加载功能,我的一个查询遇到了问题。问题是,在获得查询结果后,我使用 AutoMapper 将域对象映射到我的业务模型中,但它不断抛出异常,因为上下文已被处理。

The ObjectContext instance has been disposed and can no longer be used for operations that require a connection.



当我在调试器中查看结果集合时,我看到它是一个列表 DynamicProxy而不是实际的实体。我试图停止更改跟踪,但这没有帮助。这是我的代码:
    public List<ContentTypeColumn> GetContentTypeColumns(Int64 contentTypeId)
{
List<ContentTypeColumn> result = new List<ContentTypeColumn>();
using (SCGREDbContext context = new SCGREDbContext())
{
ContentType contentType = context.ContentTypes.Include("Parent").AsNoTracking().FirstOrDefault(x => x.Id.Equals(contentTypeId));

result.AddRange(contentType.ContentTypeColumns.ToList());
while (contentType.Parent != null)
{
result.AddRange(contentType.Parent.ContentTypeColumns.ToList());
contentType = contentType.Parent;
}
}
return result.ToList();
}

注:如果需要查看我的这个操作涉及的领域模型可以引用 this question.

最佳答案

如果您需要停止延迟加载和动态更改跟踪,您只需将其关闭即可:

using (SCGREDbContext context = new SCGREDbContext())
{
context.Configuration.ProxyCreationEnabled = false;
...
}

关于entity-framework - ObjectContext 实例已被释放,不能再用于需要连接的操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12732102/

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