2010-11-09 2 views
6

저는 1 주일 이상 머리말을 붙이고 어디서나 얻지 못했습니다. (우리는 엔티티를 모델링하려는 기존 레거시 DB를 가지고 있습니다. 테이블은 매우 비대 해졌으며 새롭고 최적화 된 테이블을 생성 할 수있는 충분한 대역폭이 없었기 때문에 이미 가지고있는 것과 함께 작업해야합니다. 그러나 테이블에 노출 된 모든 중복 열을 사용하고 싶지는 않습니다. DB. 내 초기 계획은 내 모델에서 뷰를 사용하는 것이었지만 그다지 문서화되지 않은 채로 똑같이 털이 많아 보이려했다.엔티티 프레임 워크 : 기존 데이터베이스 스키마에 대한 모델링

이제 소수의 열만 선택하여 모델을 만드는 가장 좋은 방법은 무엇일까요? 필요한 모든 것은 읽기 전용 엔티티이므로 스키마에서 null이 아닌 열을 무시할 수있는 방법이 있다면, 나는 모든 준비가되어있을거야. 나는 POCOs를 사용하려고 계획 중이었습니다. 그렇지 않으면 필자가 생각한 매핑을 직접 만들어야했습니다.

업데이트 : POCO는 ADO.NET POCO Entity Generator를 사용하고 싶습니다.

+2

NHibernate를 사용하고 자신의 POCO를 생성하고 Fluent-NHibernate로 매핑 한 다음 원하는 컬럼 만 매핑하는 것이 좋습니다. IMO는 귀하의 모델 (기존) DB 스키마를 구축/생성하는 데 문제가 있는지 묻습니다. – mxmissile

답변

2

DB에 뷰를 만들고 모델로 뷰만 가져 오는 것은 어떻습니까?

+0

시도했습니다. 공을 빨아들입니다. – Praveen

+0

다른 사람이 테이블 대신보기를 사용 했습니까? 내 경험을 알고 싶어합니다. – Praveen

+0

EF에서 꽤 많은 견해를 사용했는데 잘 작동했습니다 ... – SteveCav

1

글쎄, 많은 엔티티 만 필요하고 시간이 지나도 많이 바뀌지 않는다면 필요한 테이블을 선택하는 것보다 일반 마법사와 모든 뼈대로 엔티티를 생성하고 삭제하는 것보다 모두 모델 디자이너에서 수동으로 collumns 필요하지 않습니다.

+0

그 문제는 우리가 실제로 쿼리하고 데이터를 다시 가져오고 싶지 않은 nullable이 아닌 많은 열이 있다는 것입니다. 읽기 전용 모델을 원한다고해도 EF는 삽입/업데이트의 경우 수행 할 작업을 알지 못하는 열을 사용해야합니다. – Praveen

+0

또한 관계를 어떻게 정의 할 수 있습니까? – Praveen

+0

이제는 실제 문제를 이해합니다. 이것은 결코 없었습니다. http://blogs.msdn.com/b/dsimmons/archive/2007/11/08/mapping-read-only-entities.aspx를 살펴 보시기 바랍니다.하지만 이것은 많은 수작업처럼 보입니다. . – Markus

0

EF에 표를 추가하고 원하지 않는 속성 만 삭제하십시오. 해당 DB 필드를 매핑하지 않습니다.