2011-01-28 2 views
7

내 앱은 완전히 읽기 전용이므로 모든 업데이트 & 코드를 생성하고 싶지 않고 모든 테이블의 모든 입력란을 가져 오지 않으려 고합니다. 이러한 필드 중 일부는 null 허용되지 않으므로 저장할 기본값이 없으므로 여기서 EF에서 오류가 발생합니다.Entity Framework에서 읽기 전용 엔터티를 만드는 방법은 무엇입니까?

필자의 이전 ORM (Wilson)에서는 XML에서 엔티티에 읽기 전용으로 플래그를 지정할 수 있습니다. 나는 이것에 복잡한 회선을 보여주는 몇 개의 게시물을 보았다. 내가 놓친 게 있니? 왜 이렇게 똑바로되지 않습니까?

내가합니다 ... RIA 서비스 마법사는 각 기관이에 대한 확인란을 가지고있는 설명에 대한

감사를 참조하십시오.

+0

보고있는 오류와 어떤 상황에서 오류가 발생했는지 정확하게 파악해야합니다. "읽기 전용"기능은 없지만 어쨌든 앱은 계속 작동해야합니다. –

+1

디자이너의 엔터티에서 일부 열 (데이터베이스에서 null이 아닌)을 제거한 후 오류가 발생합니다. "테이블 ABC의 열 xyz를 매핑해야합니다 : 기본값이없고 Null을 허용하지 않습니다." 어떤 의미가 있지만, 그 열을 완전히 무시하고 EF 빌드 업데이트 코드를 전혀 갖고 싶지 않습니다. – Graeme

답변

1

문제는 CSDL에없는 SSDL에서 nullableable 필드가 있다는 것입니다.

SSDL에서 수동으로 열을 제거하면 EF가 행복해집니다. 그러나 디자이너는 모델을 업데이트 할 때 열을 다시 추가합니다. 따라서 다시 열거 나 해당 열이없는 DB의 변형에서 모델을 업데이트 할 수 있습니다.

+0

그것이 내가 의심하는 바입니다. 하지만 왜? 읽기 전용 속성을 허용하거나 EDMX에서 제거 할 경우 SSDL에서 열을 제거하는 데 어려움이 있습니까? – Graeme

+1

읽기/쓰기 유형에는 읽기 전용, nullable이 아닌 속성을 사용할 수 없으며 EF에는 "읽기 전용 유형"기능인 AFAIK가 없습니다. SSDL에서 열을 제거하는 것은 어렵지 않지만 디자이너는 GUI 설계자의 세계에서 SSDL이 수동으로 유지 관리되지 않고 항상 생성 (자주 생성)되기 때문에 디자이너가 선택하지 않기로 결정했습니다. –

+0

OK, SSDL에서 열을 제거하고 계속 제거 할 수 있지만 생성 된 모든 까다로운 코드는 무엇이든지 허용 할 수 있습니다. 필요하지 않을 때에도 거기에 있다는 것을 알기 만하면 귀찮습니다. 읽기 전용 유형 속성이없는 EF의 문제점은 무엇인지 궁금합니다 ... – Graeme

관련 문제