在 C# 中的通用存储库模式中调用数据库视图

Call Database View in Generic repository pattern in C#

我在 Web API C# (.Net Framework 4.7.2) 中使用通用存储库模式,数据库为 postgresql。我想使用通用存储库调用数据库视图和存储过程。注意:我没有使用 EDMX 文件。

PostgreSQL 视图:CREATE VIEW dashboardreport AS SELECT s.fullname, t.reportid, t.statusid, t.reportingto, t.ispendingapprovel FROM staff s JOIN report t on s.staffid=t.staffid;

通用存储库:

public class Repository<T> : IRepository<T> where T : class
{
    public repoDbContext dbContext = null;
    private readonly DbSet<T> dbSet = null;

    public Repository()
    {
        this.dbContext = new repoDbContext();
        this.dbContext.Configuration.ProxyCreationEnabled = false;
        this.dbContext.Configuration.LazyLoadingEnabled = true;
        dbSet = dbContext.Set<T>();
    }

    public async Task<IEnumerable<T>> GetAll()
    {
        try
        {
            return await dbSet.ToListAsync();
        }
        catch
        {
            throw;
        }
    }}

我必须调用并显示视图/存储过程的结果。 提前致谢。

最后,我得到了解决方法。请找到代码片段。

public async Task<IEnumerable<T>> GetView(string viewName)
{
return await dbContext.Database.SqlQuery<T>("SELECT * FROM public." + viewName).ToListAsync();
}