[英]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.