这有点复杂......
我有一个SQL表TABLE_A
。此表有3列Qty
,Price
和TotalPrice
。为确保一致性,TotalPrice
是数据库级Qty
* Ptice
= TotalPrice
的计算字段。
在WinForms
接口方面,我使用Generic collections
之类的List<Table_A>
来准备集合,然后再将其提交到数据库。在提交之前,我将List<Table_A>
提供给DataGridView
以供用户审核。现在问题是计算字段。要在提交之前显示计算字段的值,我必须在接口端为TotalPrice
赋值。插入新记录时效果很好,因为值被忽略,数据库计算其值。但是,当我将表值加载到List<Table_A.
时,更改记录的TotalPrice
(通过更改Qty
或Price
)并尝试更新数据库我得到A member that is computed or generated by the database cannot be changed.
例外。我该如何解决它,以便应用程序不会尝试将更改提交到计算字段?
我使用LINQ和Entity Framework对象连接到SQL数据库。
答案 0 :(得分:0)
显然我不得不睡在上面。我回到了我原来使用DataGridViewCellFormatting
事件并在那里应用数学的概念。删除了在界面中更改计算字段的代码,它按预期工作。现在,在插入或更新之前,我可以在不调用数据库的情况下完整地查看数据。