阻止应用程序尝试更改计算的字段值

时间:2016-04-05 21:30:38

标签: c# sql winforms linq entity

这有点复杂...... 我有一个SQL表TABLE_A。此表有3列QtyPriceTotalPrice。为确保一致性,TotalPrice是数据库级Qty * Ptice = TotalPrice的计算字段。 在WinForms接口方面,我使用Generic collections之类的List<Table_A>来准备集合,然后再将其提交到数据库。在提交之前,我将List<Table_A>提供给DataGridView以供用户审核。现在问题是计算字段。要在提交之前显示计算字段的值,我必须在接口端为TotalPrice赋值。插入新记录时效果很好,因为值被忽略,数据库计算其值。但是,当我将表值加载到List<Table_A.时,更改记录的TotalPrice(通过更改QtyPrice)并尝试更新数据库我得到A member that is computed or generated by the database cannot be changed.例外。我该如何解决它,以便应用程序不会尝试将更改提交到计算字段? 我使用LINQ和Entity Framework对象连接到SQL数据库。

1 个答案:

答案 0 :(得分:0)

显然我不得不睡在上面。我回到了我原来使用DataGridViewCellFormatting事件并在那里应用数学的概念。删除了在界面中更改计算字段的代码,它按预期工作。现在,在插入或更新之前,我可以在不调用数据库的情况下完整地查看数据。