Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework 使视图中的insert与EF6和SQLite一起工作_Entity Framework_Sqlite - Fatal编程技术网

Entity framework 使视图中的insert与EF6和SQLite一起工作

Entity framework 使视图中的insert与EF6和SQLite一起工作,entity-framework,sqlite,Entity Framework,Sqlite,我基于sqlite视图创建了一个实体,并希望使用EF6在其中插入数据。我修改了.edmx文件,使EF将视图视为一个表,并在视图上定义了一个主键。 问题是,当我的程序尝试将数据插入视图时(当然,它有一个INSTEAD of insert触发器,用于在视图的两个基础表上插入数据),我会遇到异常: 受意外事件影响的存储更新、插入或删除语句 行数(0)。实体可能已被修改或删除,因为 实体已加载。处理乐观并发异常 从EF调用的基础查询是: Opened connection at 12/07/2019 1

我基于sqlite视图创建了一个实体,并希望使用EF6在其中插入数据。我修改了.edmx文件,使EF将视图视为一个表,并在视图上定义了一个主键。 问题是,当我的程序尝试将数据插入视图时(当然,它有一个INSTEAD of insert触发器,用于在视图的两个基础表上插入数据),我会遇到异常:

受意外事件影响的存储更新、插入或删除语句 行数(0)。实体可能已被修改或删除,因为 实体已加载。处理乐观并发异常

从EF调用的基础查询是:

Opened connection at 12/07/2019 16:58:18 +02:00
Started transaction at 12/07/2019 16:58:18 +02:00
INSERT INTO [testcasesView]([name], [deviceversion_id], [user_id], [timestamp], [comment], [static_result], [description], [precondition], [action], [expected_result], [reviewed], [automated])
 VALUES (@p0, @p1, @p2, @p3, NULL, @p4, @p5, @p6, @p7, @p8, @p9, @p10);
SELECT [id]
FROM [testcasesView]
WHERE last_rows_affected() > 0 AND [id] = last_insert_rowid()
;
-- @p0: 'asd' (Type = String)
-- @p1: '67' (Type = Int64)
-- @p2: '20' (Type = Int64)
-- @p3: '1562943498' (Type = Int64)
-- @p4: 'as' (Type = String)
-- @p5: 'asd' (Type = String)
-- @p6: 'asd' (Type = String)
-- @p7: 'asd' (Type = String)
-- @p8: 'asd' (Type = String)
-- @p9: '0' (Type = Int64)
-- @p10: '0' (Type = Int64)
-- Executing at 12/07/2019 16:58:18 +02:00
-- Completed in 1 ms with result: SQLiteDataReader

Closed connection at 12/07/2019 16:58:18 +02:00
Disposed transaction at 12/07/2019 16:58:18 +02:00
我明白为什么,但我不知道我是否能解决这个问题。问题是,由于真正的插入发生在触发器内部(我不发布代码,因为它是两个简单的插入),因此查询

SELECT [id]
FROM [testcasesView]
WHERE last_rows_affected() > 0 AND [id] = last_insert_rowid()  
不返回任何内容,则EF认为没有行受到影响

是否有一条语句或代码可以添加到触发器中,使EF看到插入发生了?