【发布时间】:2016-10-24 20:01:55
【问题描述】:
我使用 Oracle 的 DataBase First 方法制作了应用程序(以这种方式 https://www.youtube.com/watch?v=tk_EDjTzZCE)
一切正常。但是,如果我在 connectionString 中更改 userId 和密码(因为我想使用另一个数据库),那么应用程序将无法工作。我有一个错误:ORA-00942: table or view does not exist 所以应用程序可以连接到数据库,但看不到表?
例如:
<add name="DbEntities" connectionString="metadata=res://*/DAL.DbModel.csdl|res://*/DAL.DbModel.ssdl|res://*/DAL.DbModel.msl;provider=Oracle.ManagedDataAccess.Client;provider connection string="DATA SOURCE=someapp_first.amazonaws.com:1521/ORCLBK;PASSWORD=apple123;USER ID=FRUIT"" providerName="System.Data.EntityClient" />
<add name="DbEntities" connectionString="metadata=res://*/DAL.DbModel.csdl|res://*/DAL.DbModel.ssdl|res://*/DAL.DbModel.msl;provider=Oracle.ManagedDataAccess.Client;provider connection string="DATA SOURCE=someapp_second.amazonaws.com:1521/ORCL2;PASSWORD=apple123;USER ID=FRUIT"" providerName="System.Data.EntityClient" />
<add name="DbEntities" connectionString="metadata=res://*/DAL.DbModel.csdl|res://*/DAL.DbModel.ssdl|res://*/DAL.DbModel.msl;provider=Oracle.ManagedDataAccess.Client;provider connection string="DATA SOURCE=someapp_third.amazonaws.com:1521/ORCL3;PASSWORD=wege123;USER ID=POTATO"" providerName="System.Data.EntityClient" />
每个数据库都是在同一台服务器上创建的(当然是相同的结构)。应用程序将在第 1 和第 2 连接字符串上正常工作,但第 3 次将无法正常工作。因为还有另一个 UserId/Password。
发生了什么事?
@编辑
新线索。如果我把断点放在 var = data.DB_USER.ToList();
{SELECT
"Extent1"."ID" AS "ID",
"Extent1"."FIRST_NAME" AS "FIRST_NAME",
"Extent1"."LAST_NAME" AS "LAST_NAME",
"Extent1"."DESCRIPTION" AS "DESCRIPTION",
"Extent1"."NOTES" AS "NOTES",
"Extent1"."DEFAULT_CUSTOMER_MODULO" AS "DEFAULT_CUSTOMER_MODULO",
"Extent1"."VERIFICATION" AS "VERIFICATION",
"Extent1"."STATUS" AS "STATUS",
"Extent1"."PIN" AS "PIN"
FROM "FRUIT"."DB_USER" "Extent1"}
检查最后一行。有FRUIT 而不是POTATO。所以查询是错误的。如果我更改了连接字符串,为什么 VS 使用旧的 SCHEMA。我使用的是第 3 个而不是第 1 个连接字符串。
【问题讨论】:
-
也许您尝试使用的用户没有查看某些表格的权限,因此它们似乎“丢失”。要进行验证,请使用相同的凭据连接到数据库并尝试选择/使用 EF 抱怨的表。
-
一切都很好,因为我使用实体向导(如 youtube 教程)再次创建了模型,但我使用了来自第三个 connectionString 的数据并且应用程序工作正常。但是现在第 1 和第 2 没有...
标签: asp.net asp.net-mvc oracle entity-framework