WCF 데이터 서비스를 개발 중입니다. 클라이언트 측에서 액세스하려고하면이 예외가 발생합니다.ObjectContext 인스턴스가 삭제되어 더 이상 연결이 필요한 작업에 사용할 수 없습니다.
ObjectContext 인스턴스가 삭제되어 더 이상 연결이 필요한 작업에 사용할 수 없습니다.
코드 :
[WebGet]
public IQueryable<Student> GetUsersByClassId(string classId)
{
Check.Argument.IsNotEmptyOrNull(classId, "classId");
using (var db = new schoolContext(connectionString))
{
((IObjectContextAdapter)db).ObjectContext.ContextOptions.ProxyCreationEnabled = false;
((IObjectContextAdapter)db).ObjectContext.ContextOptions.LazyLoadingEnabled = false;
var studentQry = from s in db.Student.Include("Class")
where s.Class.Id == classId
select s;
if(studentQry == null)
return new List<Student>().AsQueryable();
else
return studentQry;
}
반환하기 전에 IQueryable을 평가해야합니다. 그렇지 않으면 IEnumerable 또는 유사하게 설정해야합니다. 기본적으로는 게으른 콜렉션을 반환합니다. 누구든지 데이터베이스를 통해 데이터를 가져올 기회가 있기 전에 데이터베이스 연결을 꺼내야합니다. –