实体框架6代码优先触发器

时间:2014-02-21 19:17:52

标签: c# sql entity-framework entity-framework-6

我正在使用Entity Framework 6 Code First,并且想要创建一个Trigger。

我该怎么做?

我需要触发器的原因是因为用户可以直接编辑数据库,也可以通过我正在编写的程序编辑数据库,我需要确保表中的2列不是空的,并且都不是null

我一直在找,也找不到办法。

有没有办法先使用代码指定触发器?

3 个答案:

答案 0 :(得分:21)

实体框架不支持触发器,虽然您当然可以手动执行会创建触发器的语句,但是您需要在创建表之后执行此操作(如果使用迁移)。

您可以使用Ladislav在EF 4.1 code-first adding a trigger to a table

中指定的技术

请注意他的警告,但EF不会知道触发器中的任何更改。如果您的意图仅仅是确保表中的2列不为空,那么您最好使用约束(EF不支持约束,但您可以手动添加它们)。

答案 1 :(得分:15)

查看我的图书馆EntityFramework.Triggers。它适用于Entity Framework层,因此如果有人直接修改数据库,则不会触发触发器事件。 NuGet链接为https://www.nuget.org/packages/EntityFramework.Triggers/

答案 2 :(得分:0)

添加迁移后,打开迁移文件并创建触发器,如下所示

注意:您需要运行更新数据库来查看数据库中的更改。

enter image description here