Linq to SQL不保存名为'Value'的属性
本文关键字:属性 Value SQL to 保存 Linq | 更新日期: 2023-09-27 17:49:02
我正在插入一个UserStat
记录——据我所知,没有什么不寻常的。基本思想是迭代一组值Stats
,并创建UserStat
记录,复制Stat
的一些数据。
然而,当我调试时,在任何userStat.Value = <some number>;
语句之后立即, .Value
的值仍然是0.0。它是SQL Server数据库中的浮动,如果这很重要的话。但是, db中的.AnotherProperty
和.SomeOtherProp
字段也是浮动的——它们被完美地保存。
我的一致性和可再现性问题是,.Value
在被修改时从未持续存在(即使在本地实例中)。也许这需要一双新的眼睛——我是不是错过了一些显而易见的东西?
using (MyDataContext db = new MyDataContext())
{
List<UserStat> stats = new List<UserStat>();
// create stats
foreach (var stat in db.Stats)
{
UserStat userStat = new UserStat()
{
// set some common properties
};
switch (stat.ID)
{
case (int)Enums.Stats.Stat1:
userStat.Value = 1;
// right here, userStat.Value == 0 is true...HUH?
userStat.AnotherProperty = 2;
userStat.SomeOtherProp = 5;
break;
case (int)Enums.Stats.Stat2:
userStat.Value = 5;
// right here, userStat.Value == 0 is true...HUH?
break;
default:
break;
}
stats.Add(userStat);
}
db.UserStats.InsertAllOnSubmit(stats);
db.SubmitChanges();
}
是的,是我的错。我在
UserStat
上对OnValueChanged()
进行了部分类定义,这是我很久以前实现的业务修改,因为它是该类上唯一的业务修改,而其他人有许多我不断调试。
Value
可能是一个关键字,并且引起了一些意想不到的行为。将该列名更改为其他名称
哎呀——我错过了.OnValueChanged()
定义中修改UserStat的部分类定义