私は Entity Framework 4.0 に取り組んでいます。ここでは、AddObject() を使用してデータベースにコントロールを追加し、SaveChange() メソッドを使用して保存します。
しかし、その追加されたコントロールを削除して再度追加しようとすると、このエラーが何度も発生します
Store update、insert、または delete ステートメントが予期しない数の行 (0) に影響を与えました。エンティティが読み込まれてから、エンティティが変更または削除された可能性があります。
ObjectStateManager
エントリを更新します。
追加できません。アプリケーションを閉じてから追加しようとすると、そのコントロールを追加できます。
私はあちこちでうまくいかない方法をたくさん検索しようとしましたが、解決策を見つけることができませんでした. 私はEntity Frameworkの分野で生まれたばかりです。
public void Add(SearchPath entity) {
_context.SearchPaths.AddObject(entity);
// _context.Save(entity, false);
}
public void Remove(SearchPath entity)
{
if (entity.Path != null)
{
using (EntityContext entityObj = new EntityContext())
{
entityObj.SearchPaths.Attach(entity);
entityObj.SearchPaths.DeleteObject(entity);
entityObj.SaveChanges();
}
}
}
public void Modify(SearchPath entity)
{
using (EntityContext entityObj = new EntityContext())
{
try
{
entityObj.SearchPaths.Attach(entity);
entityObj.ObjectStateManager.ChangeObjectState(entity, System.Data.EntityState.Modified);
entityObj.SaveChanges();
}
catch (OptimisticConcurrencyException)
{
entityObj.Refresh(RefreshMode.StoreWins, entity);
entityObj.SaveChanges();
}
}
}
public void Add(Package entity)
{
_context.Packages.AddObject(entity);
}
public void Remove(Package entity)
{
if (_context.GetEntityState(entity) == EntityState.Unchanged)
_context.Packages.Attach(entity);
_context.Packages.DeleteObject(entity);
}