棱镜模块 + Entity Framework 共享一个数据库连接

Prism Module + Entity Framework sharing one databse connection

我目前正在尝试设计一个由多个可以动态加载的模块组成的 C# WPF 应用程序(例如,用户 A 获取模块 A 和 B,用户 B 获取模块 A 和 C)。

为了管理模块,我选择了 Prism 结合 Unity。

对于数据持久性,我想使用 Entity Framework 每个模块都应该自己处理它。

我面临的唯一问题是这最终会导致每个用户有多个数据库连接,因为每个模块都有自己的连接。

所以,我正在寻找一种在模块之间共享一个数据库连接的方法,或者 5-10 个连接没有 problem/normal?

谢谢。

模块可以使用 shared service 通过基于 Entity Framework 的数据访问层 (DAL) 访问数据库。

与数据库服务器的连接将是 pooled,前提是所有模块都使用相同的配置字符串。如果不同的用户访问同一台服务器上的不同数据库,并且您希望尽量减少与服务器的连接数,则可以从连接字符串中省略数据库名称并将其包含在查询中。

关系数据库管理系统 (RDBMS),例如 SQL 服务器当然可以处理数百个并发连接,具体取决于您的硬件。