1. ホーム
  2. c#

[解決済み] EntitySetの更新ができない - DefiningQueryがあり、<UpdateFunction>要素が存在しないため

2022-03-17 02:43:32

質問

私は.net 3.5でEntity Framework 1を使用しています。

私はこのような簡単なことをやっています。

var roomDetails = context.Rooms.ToList();

foreach (var room in roomDetails)
{        
   room.LastUpdated = DateTime.Now;
}

しようとすると、こんなエラーが出ます。

 context.SaveChanges();

エラーが出ます。

EntitySet は DefiningQuery を持っており、現在の操作をサポートする <UpdateFunction> 要素が <ModificationFunctionMapping> 要素に存在しないため、更新できません。

コンテキストで多くの更新を行っていますが、何の問題もありません。

検索しても同じことが表示されます。更新しようとしているエンティティに主キーが宣言されていないのです。しかし、残念ながら、私は主キーを宣言しています...

どうすればいいですか?

通常、次のいずれかの理由で発生します。

  • エンティティセットはデータベースビューからマッピングされます。
  • カスタム データベース クエリ
  • データベースのテーブルに主キーがない

このようにした後、エラーが出なくなる前に、Entity Frameworkデザイナーで更新する(または代わりにエンティティを削除してから追加する)必要がある場合があります。