0

我目前正在尝试从 Entity Framework 6 中的现有 Oracle 12 数据库中的表生成代码。我遇到的问题是,虽然它能够在我登录环境时看到我拥有的架构,但 Entity Framework 可以似乎看不到我有权访问的任何其他模式。

如何更改它以便我可以看到另一个架构?

我使用了实体框架模型优先和代码优先。我可以手动更改我在 Oracle 中拥有的生成表上的模式,它会起作用,但这意味着从我自己的模式中的其他模式生成我自己的表版本,以便能够通过实体使用它们框架。

否则,从所有现有表中生成所有代码将是一项繁琐的工作。

我该如何解决这个问题?

4

1 回答 1

3

好的,我已经解决了这个问题。有一种特殊的方法可以让架构在 Entity Framework 中与 Oracle 一起工作,如果需要,您可以充分利用 Entity Framework,包括 Designer/Canvas。

首先,在您的应用程序中,使用 Nuget 安装 Oracle.ManagedDataAccess.EntityFramework 包。如果你在 Nuget 中查看这个包的描述,它说它依赖于 EntityFramework 和 Oracle.ManagedDataAccess。因此,安装一个软件包,如果它丢失,它将安装所有这些。

接下来,如果您阅读该描述底部的评论,它会显示“注意:实体框架设计时需要从http://otn.oracle.com/dotnet下载的 32 位 Oracle Developer Tools for Visual Studio功能和其他 Visual Studio 设计器,例如 TableAdapter 向导。此 NuGet 下载不启用设计时工具,仅启用运行时支持。

因此,您需要安装与您的环境相匹配的 Oracle Tools for Visual Studio。安装 ODTwithODAC 包不会给您正确的结果。

最后,添加到 Oracle 数据库的连接。然后,打开服务器资源管理器并找到该连接。右键单击连接,然后选择过滤器。然后选择显示的模式。通过单击“...”按钮并选择模式来编辑值,添加要显示的所有模式。然后单击更新。然后单击确定。

下次您想从刚刚添加的架构中选择一个对象时,它将出现在实体框架列表中。

于 2018-01-17T21:44:05.343 回答