ASP.NET 核心:从 SQL 服务器或 SSAS OLAP 多维数据集获取数据?

ASP.NET Core : get data from SQL Server of from SSAS OLAP Cube?

我遇到一个应用程序问题,该应用程序包含一个 SSAS 项目、一个 OLAP 多维数据集、一个使用 ASP.NET Core 和 Blazor WebAssembly 的客户端项目,以及一个 SSRS 项目。

ASP.NET核心应用从SSRS服务器获取报表,但是报表参数是用C#和Blazor写的;我遇到的问题是如何获取这些参数的可用值。

例如,如果过滤器是关于麻醉师的,我想在组合框中显示所有麻醉师的姓名,但我从哪里获得此信息?

我有 2 个选择:使用 AdoMdClientNetCore Visual Studio 扩展从 OLAP 多维数据集,或者从 SQL 服务器中的源数据库。

我想知道是否有关于这个主题的一些好的做法;我在这里和那里搜索但没有相关结果。

我建议从 SSAS 获取数据。这样做的原因:

  1. 您的项目的工作结构 - 客户端项目 <-> SSRS <-> SSAS <-> 一些 DB。而一些DB数据源超出了项目的范围。 SSAS 充当与 Some DB 的单点联系,如果客户端应用程序将访问 DB - 它将创建另一个与 DB 的联系点.必须配置、维护这个额外的接触点等。
  2. 除非您使用特殊的 ROLAP 模式,否则 SSAS 在所谓的“处理”作业期间及时批量更新其数据,从其数据源读取数据。这意味着信息从 DB 传递到 SSAS 时会有一些延迟。 Report 从 SSAS 获取数据,因此,直接从 DB 读取可能会在极少数情况下导致不一致。
  3. 关注点分离。 SSAS 通过一些查询访问 DB。如果客户端应用程序也访问数据库,则必须将对 SSAS 所做的修改传输到客户端应用程序,从而使解决方案的开发和支持变得复杂。