2016-06-10 5 views
1

FULL OUTER JOIN을 사용해야하는보기를 만들었습니다.OUTER JOIN을 사용하는 VIEW에서 PRIMARY KEY를 생성하는 방법

이보기를 EDMX에 DbFirst 방식으로 사용하고 싶습니다.

<!--Errors Found During Generation: warning 6013: The table/view 'MyView' does not have a primary key defined and no valid primary key could be inferred. This table/view has been excluded. To use the entity, you will need to review your schema, add the correct keys, and uncomment it.

내가 CREATE UNIQUE CLUSTERED INDEX PK_MyView ON [dbo].[MyView] (Id) 를 추가하여이 문제를 해결하려하지만 SQL은 말한다 :

그러나 EDMX 다음 경고를 생성 Cannot create index on view "dbo.MyView" because it uses a LEFT, RIGHT, or FULL OUTER join, and no OUTER joins are allowed in indexed views. Consider using an INNER join instead.

없이보기를 추가 할 수있는 방법이 있나요 PK를 edmx에 보내거나 뷰에 PK를 추가하십시오.

답변

1

인덱싱 된 뷰를 만드는 중이며 인덱싱 된 뷰에서 수행 할 수있는 조인 유형에 제한이 있습니다. 주로 내부 조인 만 수행 할 수 있습니다. 다른 유형의 조인은 허용되지 않습니다.

here에 대한 내용을 읽어보고이 제한 사항이 적절한 지 확인하십시오. 그것은 특히 매력적인 해결 방법은 아니지만.

일반적으로 인덱싱 된 뷰를 사용하여 데이터를 집계하려는 경우가 아니면 인덱싱 된 뷰가 주로 유용합니다. 그렇지 않으면 기본 테이블에 적절한 인덱스가 있어야 인덱스 된 뷰가 필요하지 않습니다.

+0

Entity Framework에서 필요로하므로 뷰를 인덱싱해야합니다. 인덱스 란 인덱스를 prinary 키로 의미합니다. –

관련 문제