Visual Studio 2013,实体框架5: 做"添加功能导入"对于具有输出类型SYS_REFCURSOR的Oracle存储过程。在"中返回"的集合。 - 选择Complex,然后单击"获取列信息" - 我一直在:
"选定的存储过程或函数不返回任何列"。
我知道配置文件(在这种情况下是app.config)应该包含存储过程的条目。我生成了它:
<oracle.manageddataaccess.client>
<version number="*">
<implicitRefCursor>
<storedProcedure schema="<Scheme name>" name="<SP Name>">
<refCursor name="<ref cursor name>">
<bindInfo mode="Output" />
</refCursor>
</storedProcedure>
</implicitRefCursor>
</version>
</oracle.manageddataaccess.client>
我在这里缺少什么? (阅读很多帖子 - 没有一个帮助)。 设置条目中DBName的值应该是多少?数据库本身的名称?配置文件中连接字符串条目的名称?创建的实体框架的名称?
答案 0 :(得分:0)
我不了解Visual Studio。但是,从DBName开始,您询问:在Oracle中,连接字符串看起来像connect username/password@database
,其中database
表示TNSNAMES.ORA文件中的别名。如果你没有,你仍然可以连接。看看这个例子,也许你会看到一些熟悉的东西,并且能够使用它。
我已经删除了机密数据,因为Big Brother正在关注:)以及一些无关紧要的内容。
我应该知道数据库名称(db11g),以便我可以 ping 它并查找主机,端口和SID:
M:\>tnsping db11g
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION= (ADDRESS= (PROTOCOL=TCP) (HOST=db_11g) (PORT=1521)) (CONNECT_DATA= (SID=db11g)))
OK (50 msec)
好的,现在ping主机以找到其IP地址:
M:\>ping db_11g
Pinging db_11g [xxx.xxx.xxx.xxx] with 32 bytes of data:
Reply from xxx.xxx.xxx.xxx: bytes=32 time=4ms TTL=59
最后,连接:
M:\>sqlplus scott/tiger@xxx.xxx.xxx.xxx:1521/db11g
---------------
IP address ----
Port -----
SID
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
SQL>
希望你能让它发挥作用。如果没有,抱歉,我无法帮助你。
答案 1 :(得分:0)
我发现了问题所在: 1.在服务器资源管理器中,运行该过程。 2.有一个屏幕,可让您在配置文件中签署选项以包含所需的配置(见下文)。为了让实体框架生成模型 - 它应该知道字段。为了达到这个目的,需要检查&#34;选择配置&#34;选项,然后点击&#34;添加配置&#34; 这是相关的屏幕: https://i.stack.imgur.com/FFoTv.jpg