gpt4 book ai didi

entity-framework-4.1 - EF 4.1 代码优先向表中添加触发器

转载 作者:行者123 更新时间:2023-12-03 14:05:08 26 4
gpt4 key购买 nike

向使用 EF 4.1 的代码优先方法创建的表添加触发器的最佳方法是什么?

我正在考虑的一种方法是在 OnModelCreating 中或在初始化 Db 上下文时执行自定义 SQL 查询。

有更好的主意吗?

最佳答案

使用将执行 CREATE TRIGGER 的自定义初始化程序如果您希望 EF 为您创建触发器 (similar code like here),则 SQL 命令是唯一的选择。也不要忘记包含 SET NOCOUNT ON在触发代码的开头。

但是还有一个与触发器的逻辑相关的更复杂的问题。如果您想要修改传递给数据库的数据的触发器,您必须了解触发器所做的更改不会反射(reflect)在您当前的上下文中。上下文仍然只知道您传递给数据库的数据的实体。这通常通过将触发器修改的属性设置为 DatabaseGeneratedOption.Computed 来解决。更新或DatabaseGeneratedOption.Identity用于插入。在这种情况下,您无法修改应用程序中的属性,必须在数据库中修改它们。 EF 将确保这些属性在修改后被选中并传递给实体。问题是 this doesn't work with code-first .

关于entity-framework-4.1 - EF 4.1 代码优先向表中添加触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5913352/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com