我正在使用Entity Framework 6 Code First,想要创建一个触发器。
我应该如何做?
我需要触发器的原因是因为用户可能直接编辑数据库或通过我编写的程序进行编辑。我需要确保表中的2个列不会同时为空,也不会同时非空。
我一直在寻找方法,但找不到。
有没有办法使用Code First指定触发器?
我正在使用Entity Framework 6 Code First,想要创建一个触发器。
我应该如何做?
我需要触发器的原因是因为用户可能直接编辑数据库或通过我编写的程序进行编辑。我需要确保表中的2个列不会同时为空,也不会同时非空。
我一直在寻找方法,但找不到。
有没有办法使用Code First指定触发器?
Entity Framework不支持触发器,尽管您可以手动执行创建触发器的语句,但是如果使用迁移,则需要在表创建后执行此操作。
您可以使用Ladislav在EF 4.1 code-first adding a trigger to a table中指定的技术。
请注意他的警告,EF将不会注意到触发器所做出的任何更改。 如果您的意图仅是确保表中的2列不为空,最好使用约束(EF也不支持约束,但您可以手动添加它们)。
[Required]
属性是否满足非空约束? - Gusdor来看看我的库EntityFramework.Triggers。它在实体框架层工作,因此如果有人直接修改数据库,则不会触发触发器事件。NuGet链接为https://www.nuget.org/packages/EntityFramework.Triggers/