7

SQL Server データベースで EF を使用しています。Instead Of Insert次のようなビューとそのビューのトリガーを作成しました。

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

ビューをEF edmxにマップしました。エンティティを追加しようとすると、 を呼び出すと次の例外が発生しますSaveChanges()

EntitySet 'TargetView' を更新できません。DefiningQuery があり、現在の操作をサポートする要素が要素に存在しないためです。

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

助言がありますか?

4

1 に答える 1

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=".." />
于 2012-08-31T14:24:41.003 に答える