![]() |
1
2
这似乎有些过分,但在这种情况下,基本策略是放置一个公共接口,并将它们分离到不同的项目中。不确定这是否是这种情况下的最佳解决方案。 然后不同的项目是独立的(除了公共接口),并且可以很容易地在以后扩展。
首先要做的是创建一个公共接口,以便与适当的数据库引擎进行通信,例如:
接下来,只需为具体实现创建3个独立的项目,一个sqllite、一个sql和一个oracle。
好吧,现在你可以选择其中一个了。
基本上,您已经完成并留下了一个可扩展的、动态引用的数据库提供程序系统。 对于动态程序集解析器,您需要按照本文所述加载它们: https://www.codeproject.com/Articles/1194332/Resolving-Assemblies-in-NET-Core 这实际上会在运行时加载依赖项,因此我最好为此保留一个特殊的路径来放置这些程序集。
|
![]() |
2
2
您只需要创建 数据库上下文 负责配置它而不是 数据库上下文 它自己。 provides a constructor 接受 DbContextOptions选项 . 您需要公开此构造函数:
|
![]() |
Glory Raj · 有什么方法可以使这两个块具有共同的功能吗 2 年前 |
![]() |
Tomas Kubes · 是最大并发数。NET任务有限吗? 2 年前 |
|
Dansih · .Net核心自定义身份验证方案 2 年前 |
![]() |
It's a trap · C#-向func添加条件会导致堆栈溢出异常 2 年前 |
![]() |
user11909 · 物体怎么样。Equals()最终实现了吗? 2 年前 |