Microsoft Ents Framework文档显示,您可以将类型的属性标记为"在添加或更新时生成的值"。因此,在我希望在更新行时为LastUpdated
列指定当前日期的情况下,我可以像这样标记该属性:
但是正如你所看到的,它给出了一个警告,即EF并没有真正实现它。警告中的该链接明确告诉我们,如果我们想要在更新行时将Date
列设置为当前日期,那么我们需要自己在数据库中创建触发器实现它。
那么意味着是什么,点&#34;让EF知道为添加或更新的实体生成的值&#34;?< / p>
答案 0 :(得分:3)
你读错了。它说
不保证 EF会......
它没有说&#34; EF不会对此做任何事情&#34;。例如,如果您正在使用Code First,并将PK设置为
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
EF实际上会使用Identity(在SQL Server上)设置该列。
这也意味着EF不会在更新和插入时发送该值,因为数据库应该填充这些值。
请记住,EF与许多提供商合作,并且由每个提供商决定是否提供这种可能性,这就是为什么它不能得到保证。
答案 1 :(得分:0)
但是你想要的是让EF了解它应该在Select中包含这些列但不包括在Update或Insert中。