私はWCFの安らかなサービスの作成に取り組んでいます。エンティティフレームワーク経由でデータベースにレコードを追加しようとすると、この例外が発生します:予期しない行数(0)
ストアの更新、挿入、または削除ステートメントが予期しない行数(0)の に影響を与えました。エンティティがロードされてから のエンティティがロードされたため、エンティティが変更または削除されている可能性があります。
私は働く私のデータベースで作成されたトリガを持っています。注意すべき
GO
CREATE TRIGGER [dbo].[Trigger_groupLocation_date]
ON [dbo].[groupLocation]
INSTEAD OF INSERT
AS
BEGIN
SET NoCount ON
DECLARE @s int
DECLARE @g_id int
DECLARE @lat float
DECLARE @lon float
SELECT @s = sender FROM inserted
SELECT @g_id = g_id FROM inserted
SELECT @lat = latitude FROM inserted
SELECT @lon = longitude FROM inserted
insert into [groupLocation] (sender,g_id,latitude,longitude) values(@s,@g_id,@lat,@lon)
END
ことの一つは、私が直接データベースにレコードを追加することだということです。私はhereから例外に関するいくつかの詳細を読んで、いくつかの研究の後に私はsimilar質問stackoverflowで見つけた。
var ctx = ((IObjectContextAdapter)db).ObjectContext;
ctx.Refresh();
をしかし、私はまだ同じ例外を取得します。私はDbContextはそうする代わりにrefresh()メソッドを持っていないことを読んで解決をしようとしたときに、しかし、私は試してみました。その後、私はhereを読んでください。コードを最初に使用している場合にのみ、この回避策を実行できます。「データベースアプローチによるEFデザイナー」を使用しています。データの最初のアプローチでRefreshメソッドにアクセスするにはどうすればよいですか?後にトリガーの内側に挿入SQLコードの行を追加すること
-
また、このSO質問をお読みください。 EFが他の変更を同時に許可しない可能性があるので –
私がトリガーをコメントアウトすると、サービスはスムーズに実行され、例外はスローされません。 –