3

我有一个表,其列TotalAmount是 columns 的计算列Amount+Extra,那么如果我在该表上使用实体框架,这个计算是如何工作的?

谢谢。

4

2 回答 2

3

此外,marc_s 的响应重要的是要注意,更改 EF 实体的基础属性不会重新计算值,除非您保存对象然后从数据库中刷新它。换句话说,C# 对象上的属性不实现从数据库中的计算。

于 2012-09-27T17:24:05.913 回答
2

计算列要么 (a) 每次访问时重新计算,要么 (b) 如果您使用PERSISTED关键字定义它,则在表的数据页中创建一个实际列,并将值存储在那里。

无论如何,对于 Entity Framework,这两种计算列的行为都应该像常规列一样。如果实体框架访问表并从中读取数据,它应该获取当前值TotalAmount并将其存储在实体的相应属性中。

当您从数据库创建 ADO.NET 实体数据模型时,EF 会发现该列是计算列,因此您将无法为该属性设置新值(显然):

在此处输入图像描述

于 2012-09-27T17:21:39.787 回答