다음 코드에서는 외래 키를 변경하고 있다고 생각하지 않지만 잘못된 것일 수 있습니다. 내가 그것을 실행하면, 나는 예외를 얻을 :ForeignKeyReferenceAlreadyHasValueException 외래 키를 변경하려고하지 않는 경우?
ForeignKeyReferenceAlreadyHasValueException 여기
하면 코드 :
UsersModule um = dc.UsersModules.Where(x => x.UserId == IdParam).FirstOrDefault();
int oldModuleId = um.ModuleId;
string oldModule = um.Module.ModuleName;
오류는 줄에 발생합니다 :
string oldModule = um.Module.ModuleName
내가 왜 값을 저장하려고하기 때문에 나는 왜이 오류가 발생하는지 모르겠다. f ModuleName
문자열로 oldModule
, 변경되지 않음 um.Module.ModuleName
매니페스트 파일 .dbml 뒤에있는 genereted 코드 파일을 살펴보십시오. 디자이너를 사용하여 L2S 클래스를 추가했다고 가정합니다. getter에 예외가 throw되는지 확인합니다. –
나는 그것을 보았고 getter에 던져진다. – Xaisoft
Im 분실. 나는 이것을 재현하려고 노력했다. 나는 다른 테이블에 외래 키가있는 테이블 두 개를 골라 냈다. B -> A.라고 말하십시오. 그런 다음 B에서 항목을 가져 왔고 B 객체를 통해 A 객체에 액세스하고 이름 (비 키)을 읽으려고했습니다. 이처럼 B b = dc.Bs.First(); 문자열 s = b.A.Name; 그리고 그것은 효과가 .. –