扩展存储库 Class C# 特定于实体
Extend Repository Class C# specific to Entity
我目前有一个 entity framework 存储库 class,它基于我在网上找到的以下代码。
https://gist.github.com/ashrafeme/060f7773e25903ced986804ee7276f5f
这很好用,但是,我想创建其他方法来为特定实体执行特定功能。例如,如果我有一个博客 post 需要按 Post 类型进行过滤,我可以在我的控制器中写入
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 Class 来创建一个 BlogPostRepository,以尝试保持代码整洁。我的博客 Post 存储库中的 class 签名现在卡住了。我将如何写一个 class 来扩展下面的基础 class/
public class SqlRepository<TEntity, TContext> : IRepository<TEntity>, IDisposable
where TEntity : class
where TContext : DbContext
{
enter code here
创建class喜欢:
public class BlogRepository : SqlRepository<Blog, MyContext>
向派生 class 添加一个构造函数,其中包含必要的参数以调用基础 class 的构造函数(参考:)
我目前有一个 entity framework 存储库 class,它基于我在网上找到的以下代码。
https://gist.github.com/ashrafeme/060f7773e25903ced986804ee7276f5f
这很好用,但是,我想创建其他方法来为特定实体执行特定功能。例如,如果我有一个博客 post 需要按 Post 类型进行过滤,我可以在我的控制器中写入
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 Class 来创建一个 BlogPostRepository,以尝试保持代码整洁。我的博客 Post 存储库中的 class 签名现在卡住了。我将如何写一个 class 来扩展下面的基础 class/
public class SqlRepository<TEntity, TContext> : IRepository<TEntity>, IDisposable
where TEntity : class
where TContext : DbContext
{
enter code here
创建class喜欢:
public class BlogRepository : SqlRepository<Blog, MyContext>
向派生 class 添加一个构造函数,其中包含必要的参数以调用基础 class 的构造函数(参考: