【发布时间】:2018-08-08 22:14:34
【问题描述】:
我在 Oracle 中有两个架构,它们有很多重叠的表。但仍然必须将数据分开保存。这就是为什么我有 2 个模式,其中 80% 的表完全相同。我有一个 Windows 窗体应用程序有两个连接到每个架构的 Entity Framework 6 edmx。
PMSEntities pmsdb = new PMSEntities();
GRMSEntities grmsdb = new GRMSEntities();
我在两个 edmx 上都有一个客户实体。
要访问它,我可以这样做:
if (ispms)
pmsdb.clients.whatever;
else
grmsdb.clients.whatever;
这很麻烦,每次都做两次。
我试过了:
DbContext db;
if (ispms)
db = new PMSEntities();
else
db = new GRMSEntities();
db.clients.whatever;
但随后 db 无法识别 Client 类。
我尝试只使用一个带有客户端实体的 edmx。首先是模型/数据库。然后,如果我初始化 edmx,只需更改并传递连接字符串。但是 edmx 是从特定模式构建的。所以虽然表名和属性是完全一样的。 edmx 只是从构建 edmx 的架构中工作。
应用程序在整个应用程序中一次只能连接到一个 oracle 模式。它将是 GRMS 或 PMS 架构。
我怎样才能只声明一个 db 变量,该变量将查看 PMSEntities.edmx 或 GRMSEntities.edmx。
【问题讨论】:
标签: c# oracle entity-framework