2011-07-17 2 views
1

ADO.net을 통해 만든 1 : 많은 관계 및 대량 삽입이 LINQ-SQL 데이터 컨텍스트로 전파되지 않습니다.Ado.net 삽입 후 C# Linq-to-SQL이 업데이트되지 않음

TABLE School 
    int schoolId 
    int maxStudents 
    ... 

TABLE Students 
    int studentId 
    int schoolId 
    DateTime birthdate 
    ... 

나는 Students 테이블, 말, 500 명 학생을 추가 일괄, 내 데이터 컨텍스트가 .Students를 업데이트하지 않습니다. 그냥 여기 .Students.Count() == 0입니다

편집을 말한다 예입니다 :

// Create a Repository 
Repository Repo = new Repository(); 
string[] schoolNames = GetSchoolNames(); 

// Pull in the schools. 
IEnumerable<School> schools = Repo.GetSchools(schoolNames); 
foreach (School school in schools) school.DoSomeDirectDBWork(); 
schoolNames = schools.Select(school => school.name).ToArray(); 
Repo.Dispose(); // Flush/Close/Dispose 

Repo = new Repository(); // New repository, new data context. 
schools = Repo.GetSchools(schoolNames); 
// ** THE SCHOOLS HAVE NO STUDENTS AT THIS POINT IN THE CODE. 
// ** <SAD FACE> 
+1

삽입물을 삽입하는 곳의 코드를 표시하십시오. – Yuck

+0

어떤 데이터베이스 공급 업체입니까? – sgtz

+0

@sgtz LINQ-to-SQL = 나쁜 일을하지 않는 한 SQL 서버 –

답변

2

이 단순히 캐싱 등입니다 궁금. 필터링되지 않은 학생 세트를로드하도록 강요 한 경우, 확실하게 - 설정된 신뢰도 (로드 시점에서 비어 있음)가 될 수 있습니다. DataContext는 수명이 짧습니다. 삽입 후 새 것을 작성하고 다시 시도하십시오. 아직 빈 테이블을 읽지 않았다면 데이터를 찾아야합니다.

또한 두 개의 학생 테이블이 없는지 확인하십시오 (예 : dbo.Students vs bluesummers.Students).

+0

네, 맞습니다! 부모 개체의 ID (이 경우 ' .schoolId')를 붙잡고 다른 데이터 컨텍스트로 학교를 다시 가져 오니 카운트가 업데이트되었습니다 . –

+0

이상한, 나중에이 문제가 다시 발생했지만 나중에 훨씬 더 나쁘다. 완전히 새로운 데이터 컨텍스트를 만들고 ''개체를 다시 잡아려고 시도한 후에도 주식 개체를 업데이트 할 수 없다. –

관련 문제