在 C# 中以通用存储库模式调用数据库视图
Posted
技术标签:
【中文标题】在 C# 中以通用存储库模式调用数据库视图【英文标题】:Call Database View in Generic repository pattern in C# 【发布时间】:2021-03-20 06:55:42 【问题描述】:我在 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;
我必须调用并显示视图/存储过程的结果。 提前致谢。
【问题讨论】:
【参考方案1】:最后,我得到了解决方法。请找到代码sn-p。
public async Task<IEnumerable<T>> GetView(string viewName)
return await dbContext.Database.SqlQuery<T>("SELECT * FROM public." + viewName).ToListAsync();
【讨论】:
以上是关于在 C# 中以通用存储库模式调用数据库视图的主要内容,如果未能解决你的问题,请参考以下文章