我昨天晚上发布了这个问题,这让我发现了一个很大的问题!
我的数据库中有一个名为Units的十进制列,只要我将列的值设置为NON ZERO,并使用新值SubmitChanges列更新.如果我尝试将列的值设置为ZERO,则SubmitChanges不会更新列.
data.Units = this.ReadProperty(UnitsProperty); data.UnitPrice = this.ReadProperty (UnitPriceProperty); data.Price = this.ReadProperty (PriceProperty);
我查看了DataContext日志,我可以看到查询中不包含具有ZERO值的字段.即使我试图对代码进行硬编码,Linq也会忽略它.
data.Units = 0; data.UnitPrice = 0; data.Price = 0;
不用说这是杀了我!任何想法为什么会这样?
解
我在SO社区的帮助下想出了我的问题.我的问题是由于我创建我的实体附加时的事实,列的默认值设置为零,所以当它试图将值分配给零时... LinqToSql说嘿......没有改变,所以我没有更新价值.
我现在在做什么......只是为了让它发挥作用如下:
ctx.DataContext.InvoiceItems.Attach(data, true);
这似乎迫使所有值将自己写入数据库.这适用于现在.