我有一个表,其列TotalAmount
是 columns 的计算列Amount+Extra
,那么如果我在该表上使用实体框架,这个计算是如何工作的?
谢谢。
我有一个表,其列TotalAmount
是 columns 的计算列Amount+Extra
,那么如果我在该表上使用实体框架,这个计算是如何工作的?
谢谢。
此外,marc_s 的响应重要的是要注意,更改 EF 实体的基础属性不会重新计算值,除非您保存对象然后从数据库中刷新它。换句话说,C# 对象上的属性不实现从数据库中的计算。
计算列要么 (a) 每次访问时重新计算,要么 (b) 如果您使用PERSISTED
关键字定义它,则在表的数据页中创建一个实际列,并将值存储在那里。
无论如何,对于 Entity Framework,这两种计算列的行为都应该像常规列一样。如果实体框架访问表并从中读取数据,它应该获取当前值TotalAmount
并将其存储在实体的相应属性中。
当您从数据库创建 ADO.NET 实体数据模型时,EF 会发现该列是计算列,因此您将无法为该属性设置新值(显然):