繁体   English   中英

EF6:可以在上下文外部使用导航属性值

[英]EF6: Possibility to use Navigation Property value outside of the context

我使用一个using块通过Entity Framework从数据库中选择一个数据集:

protected StagingProcessingEngineStatus GetProcessingStatusEntryById (Guid processingId) {
    using (var context = new ProcessingEntities()) {
        var matchedPlan = context.StagingProcessingEngineStatus.FirstOrDefault(plan => plan.ProcessingId == processingId && plan.Owner == this.UserCredentials.UserId.ToString());        

        return matchedPlan;
    }
}

StagingProcessingEngineStatus实体包含另一个名为StagingRefProcessingEngineLibrary实体的导航属性:

public partial class ProcessingEntities : DbContext {
    public virtual DbSet<StagingProcessingEngineStatus> StagingProcessingEngineStatus { get; set; }
}    


public partial class StagingProcessingEngineStatus {
    public virtual StagingRefProcessingEngineLibrary StagingRefProcessingEngineLibrary { get; set; }
}

现在,我尝试使用GetProcessingStatusEntryById方法的返回值来访问StagingRefProcessingEngineLibrary属性的StagingProcessingEngineStatus

但是给了我以下例外:

ObjectContext实例已被放置,无法再用于需要连接的操作。

是否有可能在using块之外访问导航属性的值,如下所示?

var stagingPlan = this.GetProcessingStatusEntryById(processingId);

var library = GetProcessingLibraryByXmlString(stagingPlan.StagingRefProcessingEngineLibrary.LibraryXml);

要么不.Include(e => e.StagingRefProcessingEngineLibrary上下文(删除using )以保持延迟加载功能,要么使用.Include(e => e.StagingRefProcessingEngineLibrary加载( .Include(e => e.StagingRefProcessingEngineLibrary

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM