我无法将实体插入到映射视图中。
我得到的错误是:
存储、插入或删除语句影响了意外数量的行 (0)
我知道如何使用存储过程,但对我来说更有趣的是尝试在插入行视图事件上使用而不是触发器的解决方案。在 t-sql 代码中删除、更新或插入时,我没有收到任何错误,但无法使用 EF 插入行。更新和删除在 EF 中进行,但 INSERT 则不然。
Code:
create view TestInsert
as
select a.table_id, a.name
from TableA as a
create trigger tr_works_via_tsql_but_not_ef_for_some_reason
on TestInsert
instead of isert
begin
insert into TableA (table_id, name)
select table_id, name from inserted;
end
[Table(TestInsert)]
public class TestInsert
{
[Key]
public int table_id { get; set; }
public string name { get; set; }
}
谁能帮我?
万岁,我找到了解决方案!
代替触发器的主体必须返回表的 id.
create trigger tr_works_via_tsql_but_not_ef_for_some_reason
on TestInsert
instead of isert
begin
insert into TableA (table_id, name)
select table_id, name from inserted;
**select id from TableA where @@ROWCOUNT > 0 and id = scope_identity()**
end
我使用直接映射,并且我的项目中没有 edmx 文件。
这是答案的来源:具有 Replace Of 触发器的实体框架
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)