私は最近、C#とAsp.netを自分で教え始めました。簡単なブログアプリケーションを作成しようとしています。リポジトリパターンの使用法について混乱しています。私はいくつかのチュートリアルを見たことがあり、実装はさまざまです。
私のブログアプリケーションには、ブログとコメントの2つのデータベーステーブル(モデル)があります。現在、次のようなIDbContextがあります。
public interface IDBContext
{
IQueryable<Blog> FindAllBlogs();
IQueryable<Blog> FindBlogsInMonth(int month);
Blog GetBlog(int id);
void Add(Blog blog);
void Update(Blog blog);
void Delete(Blog blog);
void Add(Comment comment);
//void Remove(Comment comment);
}
そして私はこのようなリポジトリを持っています:
public class BlogRepository : IDBContext
{
private BlogDb db = new BlogDb();
public IQueryable<Blog> FindAllBlogs()
{
return db.Blogs.OrderByDescending(b => b.PublishDate);
}
public Blog GetBlog(int id)
{
return db.Blogs.Single(b => b.BlogID == id);
}
...
}
リポジトリパターンの他の実装は次のようなものです。
public interface IDbContext
{
IQueryable<Blog> Blogs { get; }
IQueryable<Comments> Comments { get; }
int SaveChanges();
T Attach<T>(T entity) where T : class;
T Add<T>(T entity) where T : class;
T Delete<T>(T entity) where T : class;
}
これはリポジトリを呼び出し、クエリ用に別のクラスがあります。
それを行うための最良の方法は何ですか?