문제

내가 노력하는 필터 기반으로 엔터티를 자신의 저장 형태(테이블 또는 뷰).

저는 2 체에서 시험 프로젝트,하나의 소스에는 테이블과 기타의 원천입니다.

<EntitySet Name="Test" EntityType="TestModel.Store.Test" store:Type="Tables" Schema="dbo" />
<EntitySet Name="TestView" EntityType="TestModel.Store.TestView" store:Type="Views" store:Schema="dbo" store:Name="TestView">

코드 샘플 위에서 촬영한 모델 데이터 파일의 다. 섹션입니다.

고 생각합 저장:유형 정보니다.은 내가 필요로 하지만 나는 찾을 수 없는 정보를 검색할 수 있는 값을 사용하여 엔티티 프레임워크 api 를 사용합니다.

어떤 도움이 될 것입니다 감사합니다.

도움이 되었습니까?

해결책

아 쿼리할 수 있는 메타데이터에서는다.보고에서 SSpace 나 StoreItemCollection.

var sspaceEntitySets = context.MetadataWorkspace
                       .GetItems<EntityContainer>(DataSpace.SSpace)
                       .First().BaseEntitySets.OfType<EntitySet>();
var entitySet = sspaceEntitySets.First();
var tableType = entitySet
.MetadataProperties["http://schemas.microsoft.com/ado/2007/12/edm/EntityStoreSchemaGenerator:Type"]
.Value.ToString();

불행하게도 이것이 당신을 도울 것 넥타이 당신의 클래스를 여부 테이블이나 보기입니다.기 때문에 단체(i.e사람들은 당신에 대해 코드에서 CSpace)보다는 오히려는 사람에 대해 설명하는 모양의 테이블(i.eSSpace 그들)CSpace 및을 알기 위해지는 엔티티에서 온 보거나 테이블,당신이 할 수 있어야에서 얻을 CSpace EntitySet 을 SSpace EntitySet 를 통해 매핑을 사용합니다.

불행하게도 EF 지 않 공개 CSSPace(i.e방법은 없을 API 를 사용하여 읽 MSL 조각의 모델).

그래서 이렇게하기 위해서 당신 수동으로 이 통해 MSL 요소,아마 LINQ to XML 을 사용하거나 무언가이다.

알렉스

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top