mat*_*uma 6 .net c# linq linq-to-sql
我昨天晚上发布了这个问题,这让我发现了一个很大的问题!
我的数据库中有一个名为Units的十进制列,只要我将列的值设置为NON ZERO,并使用新值SubmitChanges列更新.如果我尝试将列的值设置为ZERO,则SubmitChanges不会更新列.
data.Units = this.ReadProperty<decimal>(UnitsProperty);
data.UnitPrice = this.ReadProperty<decimal>(UnitPriceProperty);
data.Price = this.ReadProperty<decimal>(PriceProperty);
Run Code Online (Sandbox Code Playgroud)
我查看了DataContext日志,我可以看到查询中不包含具有ZERO值的字段.即使我试图对代码进行硬编码,Linq也会忽略它.
data.Units = 0;
data.UnitPrice = 0;
data.Price = 0;
Run Code Online (Sandbox Code Playgroud)
不用说这是杀了我!任何想法为什么会这样?
解
我在SO社区的帮助下想出了我的问题.我的问题是由于我创建我的实体附加时的事实,列的默认值设置为零,所以当它试图将值分配给零时... LinqToSql说嘿......没有改变,所以我没有更新价值.
我现在在做什么......只是为了让它发挥作用如下:
ctx.DataContext.InvoiceItems.Attach(data, true);
Run Code Online (Sandbox Code Playgroud)
这似乎迫使所有值将自己写入数据库.这适用于现在.
我在 SO 社区的帮助下解决了我的问题。我的问题是由于以下事实引起的:当我创建要附加的实体时,该列的默认值设置为零,因此当它尝试将值分配为零时...LinqToSql 说嘿...没有任何改变,所以我不会更新该值。
我现在正在做的......只是为了让它发挥作用如下:
ctx.DataContext.InvoiceItems.Attach(data, true);
Run Code Online (Sandbox Code Playgroud)
这似乎迫使所有值将自身写入数据库。目前这有效。
| 归档时间: |
|
| 查看次数: |
14690 次 |
| 最近记录: |