我目前有一个实体框架存储库类,它基于我在网上找到的以下代码。
https://gist.github.com/ashrafeme/060f7773e25903ced986804ee7276f5f
这很好,但是,我想创建其他方法来执行特定实体的特定功能。例如,如果我有一篇需要按帖子类型过滤的博客文章,我可以在我的控制器中编写
SqlRepository<Blog, MyContext> blogPostRepo = new SqlRepository<Blog, MyContext>(dbContext);
LinkedList<Blog> blogPosts = (LinkedList<Blog>)blogPostRepo.Set<Blog>().Where(p => p.PostType.Id.Equals(2));
但是理想情况下,我想扩展Base SqlRepository类来创建一个BlogPostRepository来尝试保持代码干净。我在BlogPostRepository中使用类签名时陷入困境。我如何编写扩展以下基类的类/
public class SqlRepository<TEntity, TContext> : IRepository<TEntity>, IDisposable
where TEntity : class
where TContext : DbContext
{
enter code here
创建类如:
public class BlogRepository : SqlRepository<Blog, MyContext>
使用调用基类构造函数的必要参数向构造函数添加构造函数(Ref:Link)