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()进行了部分类定义,这是我很久以前实现的业务修改,因为它是该类上唯一的业务修改,而其他人有许多我不断调试。

Linq to SQL不保存名为'Value'的属性

Value可能是一个关键字,并且引起了一些意想不到的行为。将该列名更改为其他名称

哎呀——我错过了.OnValueChanged()定义中修改UserStat的部分类定义