3

我在 .NET Web 应用程序中使用 Oracle Data Provider for .NET (Oracle ODP.NET),并使用 Entity Framework 连接到数据库。

当我创建实体数据模型时,在 Web.config 中,VS2010 创建一个连接字符串,如下所示:

<add name="eBoardingEntities" connectionString="metadata=res://*/Models.eBoardingModel.csdl|res://*/Models.eBoardingModel.ssdl|res://*/Models.eBoardingModel.msl;provider=Oracle.DataAccess.Client;provider connection string=&quot;DATA SOURCE=emobile;PASSWORD=CHECKIN_USER;PERSIST SECURITY INFO=True;USER ID=CHECKIN_USER&quot;" providerName="System.Data.EntityClient" /></connectionStrings>

但是当我在生产环境中部署应用程序时,我将数据源更改为"DATA SOURCE=emobileProduction".

生产环境中的应用程序不起作用。错误应用程序是:"Table or view not found"。应用程序未连接到数据库。

为了使其工作,我需要取消实体数据模型并使用与生产数据库的新连接重新生成它。

有什么帮助不重新生成实体数据模型,而不必重置与生产数据库的连接?

4

2 回答 2

2

我解决了!!!

在 oracle 中,用户的名称是模式的名称。

在生产中,我有用户 CHECKIN,而在开发环境中,用户是 CHECKIN_USER。

出于这个原因,方案有不同的名称,并且在开发环境中生成的实体模型与生产环境不同。

大家加油!!!

再见。

于 2012-12-05T13:55:57.003 回答
0

错误“找不到表或视图”可能意味着两件事:

  • 表或视图确实不在数据库中。我怀疑这不是你的情况。
  • 连接到数据库的用户没有使用该表的权限。如果用户没有直接或通过角色被授予对表的 SELECT 权限,则用户将无法从中进行选择。这是一个常见的疏忽,我建议您检查一下。

检查它的最简单方法是通过 PL/SQL Developer og SQL Navigator 之类的工具作为您正在使用的用户连接到数据库,然后尝试从表中进行选择。您还可以以具有很多权限的用户身份连接到数据库并查询系统视图。

EF 的连接字符串对我来说似乎可以用于生产。您在 web.config 中设置它,最重要的部分是数据源和用户规范。

于 2012-12-05T08:57:49.863 回答