LinqToSql 모델에서 매우 흥미로운 문제가 있습니다. 일부 내 테이블에 다른 테이블에 대한 참조가 있고 LinqToSql이 EnitiyRef 클래스에 의해 나타납니다, LinqToSql 참조 테이블에 액세스하려고하면 데이터베이스에서 참조를로드합니다.LinqToSql 참조 엔티티는 NullReferenceException을 던질 것입니다
제 개발 컴퓨터에서 모든 것이 잘 동작했습니다 (참조가 완벽하게로드되었습니다).하지만 어젯밤에 프로덕션 서버로 변경 내용을 업로드하고 내 테이블에 대한 참조에 액세스 할 때 NullReferenceExceptions가 발생하기 시작했습니다.
샘플 코드 : 처음에
var sale = db.Sales.Single(s => s.ID == 1);
string username = sale.User.Name; // User is a reference to a User table
// LinqToSql will automatically load the
// row and access the fields i need.
// On my server the sale.User throws an exception that its null (User) but the user
// is definitly in the database (there is even a FK constraint from Sale to User)
나는 내 DataContext에이 GC'd있어하지만 (내 상자에서 작동 외에) 내가없는 결과 모든 검사를 두 번 생각했다.
(모든 서버와 내 상자 같은 DLL 년대에 동일 같은 DB 스키마 등) 는
그래서 상자에 컴파일되어 컴파일 된 프로그램이 제대로 실행되지만 프로덕션 서버에서 충돌이 발생합니까? (동일한 바이너리 또는 동일한 소스에서 실행한다는 의미) – Sam
동일한 바이너리. 모든 것이 내 상자에 컴파일됩니다. –