我插入UserStat
記錄屬性 - 沒有什麼不尋常的,到目前爲止,我可以告訴。基本思想是迭代一組值Stats
,並創建UserStat
記錄,複製一些Stat
數據。LINQ到SQL不保存一個名爲「值」
但是,當我調試時,立即任何userStat.Value = <some number>;
語句後,.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();
}
更新
是的,這是我的錯。我對UserStat
的部分班級定義爲OnValueChanged()
,因爲這是我在很早以前實施的業務修改,因爲它是該班級唯一的業務修改,而其他人有很多我經常調試。
你是否直接在評論處測試了'value == 0'?還是你在做這個假設,因爲它不能保存? – smartcaveman 2011-04-05 01:39:09
@smartcaveman:「但是,當我調試時,...」我已經調試了該行後面的語句,它是0.0 – 2011-04-05 01:42:38