2010-06-21 2 views
6

Entity Framework 4.0을 사용 중입니다.Entity Framework 4.0 데이터베이스 기본값 사용

대부분의 테이블에는 DBA가 항목을 추적하는 데 사용하는 RowID라는 열이 있습니다. 열은 NON NULLABLE이며 함수에 맵핑되는 데이터베이스 기본값이 있습니다.

문제는 EDMX 모델이이 속성에 개체의 값을 지정하여 개체 구성을 어렵게 만드는 것입니다.

EDMX 및 SSDL 파일을 수동으로 조정하여이 작업을 수행하는 방법에 대한 많은 게시물을 읽었습니다. 그것은 우리 팀에게는 실현 가능하지 않습니다.

데이터베이스에 열 NULLABLE을 만드는 것 외에이 문제에 대한 더 나은 해결책이 있습니까? 가치를 되 찾는 것에 신경 쓰지 않고, 데이터베이스가 스스로 설정할 수 있기를 바랍니다.

답변

2

RowID를 응용 프로그램의 컨텍스트에서 읽거나 쓸 필요가없는 경우 Entity Model에 전혀 속하지 않습니다. Designer (오른쪽 클릭> 삭제)를 사용하여 엔티티 모델에서 제거하고 데이터베이스에서 관리하게하십시오.

+0

문제는 ROWID가 다른 테이블에 FK입니다, 그래서 그것을 얻을 자식 개체를 만들 때 사용할 수 있어야합니다 : 자세한 내용은

이 문서를 참조하십시오. – ctorx

6

SSDL (모델 뒤에있는 XML)에 StoreGeneratedPattern = "Computed"를 직접 설정해야합니다.

1 - 오른쪽 모델을 클릭

2 - "열기와"=> XML을 편집기를 선택

3 - 모델 콘텐츠 섹션 아래에있는 테이블 중 하나의 매핑을 찾아

4 - RowG 열에 StoreGeneratedPattern = "Computed"속성을 추가하십시오.

5 - 모든 테이블이 StoreGeneratedPattern = "Computed"를 가진 RowID 정의를 가질 수 있도록 파일을 전역 대체하십시오.

참고 : 모델 업데이트 마법사를 사용하는 경우 수동으로 XML을 다시 업데이트해야합니다. 내 권장 사항 : 마법사를 사용하거나 원본 및 변경된 XML 줄을 별도의 텍스트 파일로 저장하지 마십시오. 따라서 마법사를 실행 한 후에 전역 바꾸기를 수행 할 수 있습니다. http://msdn.microsoft.com/en-us/library/dd296755(v=vs.90).aspx

+1

Entity Framework 5를 사용하고 StoreGeneratedPattern = Computed를 설정하고 "데이터베이스에서 모델 업데이트 ..."마법사를 사용할 때 필드가 * 다시 설정되지 않습니다. – DaveD

관련 문제