0

エンティティとLinQを使用してこれと同じSQLアトミック命令を作成する方法はありますか?

IF EXISTS(SELECT * FROM MyTable WHERE ID = @Id)UPDATE MyTable SET name = @name ELSE INSERT INTO MyTable(@Id、@name)

または、EF内からストアドプロシージャを呼び出す必要がありますか?

4

1 に答える 1

0

Entity Framework は、オブジェクトの寿命を追跡します。

  • オブジェクトがクエリから初期化された場合、フレームワークはレコードがデータベースに存在する必要があることを理解し、UPDATE変更をデータベースにプッシュするときに実行します。
  • オブジェクトがコードで初期化された場合、フレームワークはそれを「新しい」オブジェクトとして認識しINSERT、変更をデータベースにプッシュするときに実行します。

INSERTorUPDATE操作が必要かどうかに関係なく、単一の SQL を呼び出したい場合は、ストアド プロシージャを指定する必要があります。

于 2010-04-19T10:25:10.187 に答える