2012-06-19 3 views
0

사용자 및 역할 테이블이 있습니다. 사용자 테이블에 RoleId 열의 기본값이 있습니다. 하지만 난 내가 DatabaseGeneratedOption.Computed로 역할 ID 속성을 설정하는 경우, 예를 들어, EF4에서 작동 할 수없는 방법Entity Framework 외래 키 기본값

_repository.Save(new User() 
    { 
     Login = "asdasd", 
     Name = "sadqwqwd", 
     Password = "wqdwqd" 
    }); 

새로운 사용자는 기본 값으로 삽입되지만, 나는 코드

에 역할 ID를 설정하려면
_repository.Save(new User() 
    { 
     Login = "qqasdasd", 
     Name = "qqsadqwqwd", 
     Password = "qqwqdwqd", 
     RoleId = 2 
    }); 

RoleId 값을 무시하고 다시 기본값을 설정합니다. DatabaseGeneratedOption.Computed 옵션을 제거하면 RoleId 값이없는 사용자 개체를 삽입 할 수 없습니다. 이 문제를 어떻게 해결할 수 있습니까? 미리 감사드립니다.

답변

0

DatabaseGeneratedOption.Computed 옵션을 가진 등록 정보는 삽입/업데이트 작업에서 EF에 의해 무시되며 데이터베이스 측에서만 설정할 수 있습니다.

RoleId 속성에서 DatabaseGeneratedOption.Computed 옵션을 제거하고 User 클래스의 생성자에서 기본값을 설정하십시오.

+0

기본값은 쿼리이기 때문에 모델의 기본값을 설정하는 데 관심이 없습니다.이 값을 얻기 위해 클래스 생성자에서 컨텍스트/저장소를 가져와야합니다. – Boo

관련 문제