2012-08-31 2 views
7

SQL Server 데이터베이스와 함께 EF를 사용하고 있습니다.대신 트리거가있는 엔터티 프레임

insert into Target (value, someFk) 
select value, 4 from inserted 
select id from Target where @@ROWCOUNT > 0 and id = scope_identity() 

내가 EF의 edmx에보기를 매핑 : 나는보기와 같이 보이는 뷰에 대한 Instead Of Insert 트리거를 만들었습니다. 나는 SaveChanges()를 호출 할 때 나는 다음과 같은 예외가 엔티티를 추가 할 때 :

그것은 DefiningQuery을 가지고 있으며, 어떤 요소가 현재 을 지원하기 위해 요소에 존재하지 않는 때문에 EntitySet 'TargetView'을 업데이트 할 수 없습니다 조작.

보기에는 매핑에 표시된 식별 열이 있습니다.

제안 사항?

답변

3

xml 편집기를 사용하여 EDMX 파일을 열면 TargetView가 정의 된 섹션에서 다음과 비슷한 xml을 갖게됩니다.

<EntitySet Name=".." 
      EntityType=".." 
      store:Type="Views" 
      store:Schema=".." 
      store:Name=".."> 
<DefiningQuery>SELECT ....</DefiningQuery> 

CRUD 작업을 수행하려면이 xml 섹션을 변경해야합니다.

<EntitySet Name=".." 
      EntityType=".." 
      store:Type="Tables" 
      Schema=".." /> 
+1

하나는 볼이 링크 http://smehrozalam.wordpress.com/2009/08/12/entity-framework-creating-a-model-using-views-instead-of-tables/ – StuartLC

+0

@ nonnb 중대한 기사 대체 방법을 기술하는; 공유해 주셔서 감사합니다. – daryal

+0

이 방법이 효과적이지만 이것은 매우 잘못되었습니다. Hope EF 5.0은 여기에 약간의 개선점을 추가 할 것입니다. – Jaster