次のように、タグテーブルのタグのリストを更新しようとしています。
List<Tag> tagList = GetUnitTagList(unitId);
foreach (Tag tag in tagList)
{
tag.count = tag.count - 1;
}
db.SubmitChanges();
GetUnitTagList()メソッドは次のとおりです。
public static List<Tag> GetUnitTagList(int unitId)
{
DataClassesDataContext db = new DataClassesDataContext();
var tags = from x in db.UnitTags where x.UnitID == unitId select x.Tag;
return tags.ToList();
}
しかし、更新しようとしている値は更新されません。
ただし、次のコードは問題なく機能します。
var tags = from x in db.UnitTags where x.UnitID == unitId select x.Tag;
foreach (Tag tag in tags)
{
tag.count = tag.count - 1;
}
db.SubmitChanges();
メソッドが返すTagオブジェクトのコレクションを取得した場合、レコードを更新できないようです。デバッグを試みましたが、例外はありませんでした。
では、レコードを更新する最初の方法が機能しないのに、2番目の方法は問題なく機能するのはなぜですか?