gpt4 book ai didi

c# - 在 Entity Framework 中将属性标记为 "Value generated on add or update"有什么意义?

转载 作者:太空宇宙 更新时间:2023-11-03 22:47:44 25 4
gpt4 key购买 nike

Entity Framework 的 Microsoft 文档显示您可以将类型的属性标记为“添加或更新时生成的值”。因此,如果我希望在更新行时为 LastUpdated 列提供当前日期,我可以像这样标记该属性:

enter image description here

但如您所见,它会发出警告,表明 EF 不会真正实现它。跟随警告中的链接明确告诉我们,如果我们希望在更新行时将 Date 列设置为当前日期,我们需要自己在数据库中创建触发器 让它发生。

那么它是什么意思,“让 EF 知道值是为添加或更新的实体生成的”的是什么?

最佳答案

你读错了。它说

It does not guarantee that EF will...

它没有说“EF 不会对此做任何事情”。例如,如果您正在使用 Code First,并且将 PK 设置为

[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }

EF 实际上会使用标识(在 SQL Server 上)设置该列。

这也意味着 EF 不会在更新和插入时发送该值,因为数据库应该填充这些值。

请记住,EF 与许多提供程序合作,并且由每个提供程序提供这种可能性,这就是为什么不能保证。

关于c# - 在 Entity Framework 中将属性标记为 "Value generated on add or update"有什么意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49129838/

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