我正在尝试使用 asp .net mvc 构建博客应用程序。该博客运行良好,但我并不厌倦介绍存储库模式。我从下面的代码开始 - 即我可以添加博客、评论和编辑/删除它们。但是,我稍微更改了代码,一切都失败了。我不明白出了什么问题。
我从这段代码开始,它有效:
博客存储库:
public interface IBlogRepository
{
IQueryable<Blog> FindAllBlogs();
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 : IBlogRepository
{
....
public void Add(Blog blog)
{
db.Blogs.Add(blog);
db.SaveChanges();
}
....
}
博客控制器:
IBlogRepository blogrepository;
public BlogController()
{
blogrepository = new BlogRepository();
}
.....
public ActionResult Create(Blog blog)
{
if (ModelState.IsValid)
{
blog.Content = Regex.Replace(blog.Content, " {2,}", x => x.Value.Replace(" ", " "));
blog.Content = blog.Content.Replace("\n", "<br/>");
blogrepository.Add(blog);
return RedirectToAction("Index");
}
return View(blog);
}
.....
}
更改和不起作用的代码是:
博客存储库:
public interface IBlogRepository
{
IQueryable<Blog> FindAllBlogs();
Blog GetBlog(int id);
T Update<T>(T entity) where T : class;
T Add<T>(T entity) where T : class;
T Delete<T>(T entity) where T : class;
}
博客存储库:
public class BlogRepository : BlogDb, IBlogRepository {
...
T INPLHBlogRepository.Add<T>(T entity)
{
return Set<T>().Add(entity);
}
...
}
我打破了什么?非常感谢