c# - 扩展特定于实体的存储库类 C#
问题描述
我目前有一个实体框架存储库类,它基于我在网上找到的以下代码。
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>
向派生类添加一个构造函数,其中包含调用基类构造函数的必要参数(参考:链接)
推荐阅读
- java - 在 java 中创建一个包含附件的 SOAP 消息
- mongodb - 当 heroku 节点应用程序尝试使用和尚访问 mlab db 插件时的状态 503
- c - 即使具有显式可见性,也不会导出 C 共享库中的某些 C 符号
- sql-server - 两个维度和事实之间的多对多关系
- c# - 将文本块插入树视图项
- ubuntu - 为什么 grub 不能立即启动进入 Ubuntu?
- javascript - 角甘特图中截面的宽度
- logging - 一个附加程序中的多个过滤器
- django - 如何解决 __init__() 需要 1 个位置参数,但给出了 2 个
- javascript - 是否可以使用 Robot Framework 验证 Bootstrap 的约束验证文本?