2008-10-08 3 views
1

관련 부서가있을 수도 있고 없을 수도있는 User 클래스가 있습니다. 이것은 DepartmentId 외래 키를 통해 참조되며 User 테이블의 관련 필드는 null을 허용하도록 설정됩니다.Linq to SQL과의 Zero-to-many 관계

나는 설정할 때 내 어떤 부서 형태 "사용자 만들기 없다"를 선택, 난 SubmitChanges()에 충돌 오류 얻을 : 나는 경우 NULL을 삽입하는 SQL에 Linq를 설득 할 수 있습니까

The INSERT statement conflicted with the FOREIGN KEY constraint "FK_User_Department". 

을 " 부서 "가"공백 "첫 번째 옵션으로 선택 되었습니까?

또는 아마도이 경우 Html.DropDownList 메서드의 "optionLabel"매개 변수에 누락 된 키워드가 있습니까? null을 사용하거나 "공백 옵션"을 표시하지 않기 때문에 현재 "없음"을 사용하고 있으며 이것이 문제의 원인이 될 수 있습니다. 도움을 주셔서 감사합니다.

답변

1

나는 내 UsersController.Create 방법에 다음 넣어 덜보다 바람직한 해결책을 발견했다.

0

부서를 선택하지 않은 경우 지정하는 부서에 "N/A"항목이있을 수 있습니다. 그렇다면 외래 키 충돌을 일으키지 않을 것입니다. 물론

// Snipped UpdateModel call 
if (form["User.DepartmentId"].Length == 0) 
{ 
    createdUser.DepartmentId = null; 
} 
Models.User.DataContext.SubmitChanges(); 

, 나는 청소기/자동 무언가를 선호하는 것 :