Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Linq到SQL不';t保存名为'的属性;价值';_C#_Linq To Sql_Insert - Fatal编程技术网

C# Linq到SQL不';t保存名为'的属性;价值';

C# Linq到SQL不';t保存名为'的属性;价值';,c#,linq-to-sql,insert,C#,Linq To Sql,Insert,我正在插入一个UserStat记录——据我所知,没有什么异常。基本思想是迭代一组值,Stats,并创建UserStat记录,复制一些Stat数据 然而,当我调试时,在任何userStat.Value=语句,.value的值仍然是0.0。如果这很重要的话,它是SQL Server数据库中的一个浮点数。但是,数据库中的.AnotherProperty和.SomeOtherProp字段也是浮动的——它们保存得非常好 我的一致性和可重复性问题是,.Value在被修改时永远不会持续(即使在本地实例中)。也

我正在插入一个
UserStat
记录——据我所知,没有什么异常。基本思想是迭代一组值,
Stats
,并创建
UserStat
记录,复制一些
Stat
数据

然而,当我调试时,在任何
userStat.Value=语句,
.value
的值仍然是0.0。如果这很重要的话,它是SQL Server数据库中的一个浮点数。但是,数据库中的
.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();
        }
使用(MyDataContext db=newmydatacontext())
{
List stats=新列表();
//创建统计数据
foreach(db.Stats中的var stat)
{
UserStat UserStat=new UserStat()
{
//设置一些公共属性
};
开关(stat.ID)
{
案例(int)Enums.Stats.Stat1:
userStat.Value=1;
//就在这里,userStat.Value==0是真的…嗯?
userStat.AnotherProperty=2;
userStat.SomeOtherProp=5;
打破
案例(int)Enums.Stats.Stat2:
userStat.Value=5;
//就在这里,userStat.Value==0是真的…嗯?
打破
违约:
打破
}
stats.Add(userStat);
}
db.UserStats.InsertAllOnSubmit(stats);
db.SubmitChanges();
}
更新


是的,这是我的错。对于
OnValueChanged(),我在
UserStat
上有一个部分类定义
这是我很久以前实现的一个业务修改,我记不起来了,因为它是该类上唯一的业务修改,而其他类中有许多是我不断调试的。

Value
可能是一个关键字,会导致一些意外行为。将该列名更改为其他名称。

Value
可能是一个关键字,导致您出现一些意外行为。将该列名更改为其他名称。

Oops--我错过了在
.OnValueChanged()定义中修改UserStat的部分类定义。

Oops--我错过了在
.OnValueChanged()定义中修改UserStat的部分类定义
定义。

您是否在注释点直接测试了
值==0
?或者你做出这样的假设是因为它不保存?@smartcaveman:“但是,当我调试时,…”我调试了一行后面的语句,它是0.0。你是否在注释点直接测试了
值==0
?或者你做出这样的假设是因为它不能保存?@smartcaveman:“但是,当我调试时,…”我调试了这行后面的语句,它是0.0,我考虑过了,但是1)对
UserStat
记录的修改在我的项目的其他地方是可以的,2)我使用Linq to SQL profiler进行了调试,它将
.Value
列适当地包装在方括号中,例如
插入[UserStat]SET[Value]=123…
。是否有您建议的特定行为导致了这种情况?让我澄清一下——对UserStat
.Value
的修改与其他地方的预期一样有效。调试时,对象与它未来的数据库副本无关,它只是数据上下文中对象的公共属性,但是1)对
UserStat
记录的修改在我的项目的其他地方是可以的,2)我使用Linq to SQL profiler进行了调试,它将
.Value
列适当地包装在方括号中,例如
插入[UserStat]SET[Value]=123…
。是否有您建议的特定行为导致了这种情况?让我澄清一下——对UserStat
.Value
的修改与其他地方的预期一样有效。调试时,对象与它未来的数据库副本无关,它只是数据上下文中对象的公共属性。