int データ型の SQL 列があります。
Entity Framework を使用して値を 0 に設定してエントリを更新しようとしていますが、更新されません。変更を送信するときにもエラーは発生しません...奇妙です。タグ名を変更してカウントを 0 に設定すると、名前は更新されましたが、カウントは変更されませんでした
何か案は?
前もって感謝します
コード スニペット:
タグを追加 - タグ数を増やします:
Tag tag = _tagsRepository.GetTagByName(TagName);
if (tag == null)
{
tag = new Tag();
tag.CreateDate = DateTime.Now;
tag.Name = TagName;
tag.Count = 1;
}
else
{
tag.Count += 1;
}
tag = _tagsRepository.SaveTag(tag);
アイテムからタグを削除し、タグ数を更新します
Tag tag = _tagsRepository.GetTagByName(TagName);
if (tag != null)
{
tag.Count -= 1;
}
tag = _tagsRepository.SaveTag(tag);
GetTagByName メソッド
public Tag GetTagByName(string Name)
{
Tag result = null;
using (ISADataContext dc = conn.GetContext())
{
result = dc.Tags.Where(t => t.Name == Name).FirstOrDefault();
}
return result;
}
SaveTag メソッド
public Tag SaveTag(Tag tag)
{
using (ISADataContext dc = conn.GetContext())
{
if (tag.TagID > 0)
{
dc.Tags.Attach(new Tag { TagID = tag.TagID });
dc.Tags.ApplyCurrentValues(tag);
}
else
{
dc.Tags.AddObject(tag);
}
dc.SaveChanges();
}
return tag;
}
回避策:
using (ISADataContext dc = conn.GetContext())
{
if (tag.TagID > 0)
{
if (tag.Count == 0)
{
Tag t = dc.Tags.Where( tt=> tt.TagID == tag.TagID).First();
t.Count = 0;
}
else
{
dc.Tags.Attach(new Tag { TagID = tag.TagID });
dc.Tags.ApplyCurrentValues(tag);
}
}
else
{
dc.Tags.AddObject(tag);
}
dc.SaveChanges();
}
return tag;