私はint型のデータ型としてSQLの列を持っています。ASP.NETエンティティフレームワークの更新SQLのint値を0に設定
Entity Frameworkを使用してエントリを更新しようとしていますが、値を0に設定しても更新されません。私はまた、変更を送信中にエラーが発生しない...奇数。私はタグ名を変更し、カウントを0に設定したが、名前は更新されたが、カウントは変更されなかった。
アイデア?事前に
おかげ
コードSnipet:
タグを追加 - タグ・カウントアップ:
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;
任意のコードを入力してください。 – sarwar026
スニペット追加、申し訳ありません – Ianc22
'_tagsRepository.GetTagByName(TagName)'の定義を表示してください。 – sarwar026