私はこの記事を読みましたが、いまだに重要な瞬間を誤解しています。私たちは電話する必要はありません
_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();
}