2012-08-31 12 views
7

SQL ServerデータベースでEFを使用しています。トリガーではなくEntity Framework

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()を呼び出すときに、私は次の例外を取得:

のEntitySet「TargetView」を更新できません、それはDefiningQueryを持っており、何の要素が現在の をサポートするために 要素に存在しないため操作。

ビューにはマッピングにマークされた識別列があります。

提案がありますか?

答えて

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

1 http://smehrozalam.wordpress.com/2009/08/12/entity-framework-creating-a-model-using-views-instead-of-tables/ – StuartLC

+0

@もこのリンクを参照してください代わりの方法を記述するnonnb素晴らしい記事。共有してくれてありがとう。 – daryal

+0

これは動作しますが、これはひどく間違っています。希望EF 5.0はここでいくつかの改善を加えるだろう。 – Jaster

関連する問題