2010-05-27 3 views
1

내 응용 프로그램 덕분에 EF4에서 만든 엔티티에서 비즈니스 엔티티를 분리해야합니다. 엔터티가 단지 번역기를 사용하여 비즈니스 및 서비스 계층에서 공유되는 비즈니스 엔터티로 리포지토리에 액세스하도록 제한해야합니다. 나는 그들을 내부로 지정함으로써 그들을 제한하는 것을 생각했다. 이제 내 응용 프로그램에는 40 개가 넘는 항목이 있으므로 내부로 수동 설정하는 것은 어려운 작업입니다. 포럼 중 하나에서 T4 템플릿을 사용하여 답변을 제안했습니다. 그러나 그 템플릿들조차 엔티티 프레임 워크 액세스 지정자를 읽습니다. 수동으로 모든 속성 및 클래스 액세스 지정자를 내부로 지정하려고하면 엔티티 집합도 내부로 설정해야한다는 오류가 발생하지만 동일한 옵션은 없습니다. VS 2010 및 Entity Framework 4를 사용하고 있습니다. 제안 사항 ???엔티티 프레임 워크 : [내부 액세스 지정자가있는 모든 엔티티를 설정하십시오]

답변

0

검색을 수행하고 정규식으로 바꾸기가 어렵습니까? EDMX를 마우스 오른쪽 버튼으로 클릭하고 XML로 열어 Ctrl + H를 누릅니다.

예 검색 문자열은 다음과 같습니다

\<EntityType:b{.+}\> 

예는 문자열 인 대체 :

\<EntityType \1 a:TypeAccess="Private" xmlns:a="http://schemas.microsoft.com/ado/2006/04/codegeneration" \> 

단순화를 들어, 나는 TypeAccess 기존 감지하지 않았습니다. 정규식을 원하는만큼 복잡하게 만들 수 있습니다.

VS에 정규식을 사용하려면 상자를 선택해야합니다.

+0

모든 엔터티가 공개 또는 기본 액세스 지정자로 정의 될 때마다 특성이 언급되지 않습니다. 액세스 지정자가 변경된 경우에만 속성이 추가됩니다. 따라서 검색과 바꾸기도 작동하지 않습니다. –

+0

물론 작동합니다. 가시성 지정자가없는 이름을 검색하십시오. 당신은 regex와 캡쳐 그룹으로 이것을 할 수 있습니다. 또는 XSLT를 사용하는 것이 더 편한 경우 XSLT를 사용하십시오. –

+0

당신은 정규식에 대한 예제를 줄 수 있습니까? –

1

DataModel.edmx의 흰색 배경을 클릭하십시오. 속성 섹션에서 "Entity Container Access"를 찾아 내부로 변경합니다.

관련 문제