私はthisの記事を読んだことがありますが、それでも重要なことを誤解しています。電話をする必要はありませんエンティティフレームワークでの保存
_context.SaveChanges()
すべての削除/更新/操作では必要ありませんか?
いずれかのエンティティのプロパティを変更した場合は、SaveChanges()
の結果をデータベースに送信するか、手動でEntityState.Modifyed
を設定する必要がありますか?
public class Repository<T> : IRepository<T>
where T : class
{
private IDbContext _context;
public Repository(IDbContext context)
{
_context = context;
}
private IDbSet<T> DbSet
{
get
{
return _context.Set<T>();
}
}
#region IRepository<T> Members
public void Insert(T entity)
{
DbSet.Add(entity);
}
public void Delete(T entity)
{
DbSet.Remove(entity);
}
public IQueryable<T> SearchFor(Expression<Func<T, bool>> predicate)
{
return DbSet.Where(predicate);
}
public IQueryable<T> GetAll()
{
return DbSet;
}
public T GetById(int id)
{
return DbSet.Find(id);
}
#endregion
}
public interface IDbContext
{
IDbSet<T> Set<T>() where T : class;
int SaveChanges();
void Dispose();
}
毎回 '[... = EntityState.Modifyed]'を呼び出す必要はありません。 – MarcinJuraszek