我正在使用Entity Framework 6 Code First,并且想要创建一个Trigger。
我该怎么做?
我需要触发器的原因是因为用户可以直接编辑数据库,也可以通过我正在编写的程序编辑数据库,我需要确保表中的2列不是空的,并且都不是null
我一直在找,也找不到办法。
有没有办法先使用代码指定触发器?
答案 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)