エンティティ フレームワーク モデルの最初のセットアップでリポジトリ パターンを使用しています。私のベース リポジトリ クラスには、典型的な CRUD メソッドがあります。EF はオブジェクトの変更を追跡するのに、なぜ Update CRUD メソッドが必要なのですか? Update を呼び出さずに、リポジトリにクエリを実行してオブジェクトを変更し、コミットするだけです。EF は、Modified オブジェクト状態で変更されたすべてのオブジェクトを自動的に更新します。ありがとう
public class BaseRepository<T> : IRepository<T> where T : class
{
private ObjectSet<T> _set;
private readonly IDatabaseFactor _databaseFactory;
protected MyDataContext DataContext
{
get{ return _databaseFactory.DataContext;}
}
public BaseRepository(IDatabaseFactory dbFactory)
{
_databaseFactory = dbFactory;
_set = _databaseFactory.DataContext.CreateOjbectSet<T>();
}
public virtual IQueryable<T> GetQuery()
{
return _set;
}
public virtual void Insert(T entity)
{
_set.AddObject(entity);
}
public virtual void Delete(T entity)
{
_set.DeleteObject(entity);
}
public virtual void Update(T entity)
{
_context.ObjectStateManager.ChangeObjectState(entity, EntityState.Modified);
}
}