【发布时间】:2016-09-20 16:12:56
【问题描述】:
这个问题我已经有一个多星期了,我知道有很多关于这个的问题,但我还没有看到有人使用 Oracle。我正在使用 EF 数据库 首先,我需要从 Oracle 视图创建一个实体,并且由于“您需要定义主键”的限制,EF 不会让我这样做。
我收到的消息:
- “VIEW_NAME”类型的关键部分“COLUMN_NAME”无效。密钥的所有部分都必须不可为空。
- 警告错误 6002:表/视图“VIEW_NAME”没有定义主键。已推断出密钥,并将定义创建为只读表/视图。
我尝试过的解决方法:
修改de.edmx,自己添加主键。 结果:框架会说“该列可以为空,我们不能接受”
-
使用以下语法修改我的视图:
CREATE OR REPLACE FORCE VIEW SCHEMA.MY_VIEW (COLUMN, FIELD1, FIELD2, FIELD3) AS SELECT NVL(ROW_NUMBER() OVER(ORDER BY FIELD1), 0) AS COLUMN , FIELD1 , FIELD2 , FIELD3 WITH READ ONLY; ALTER VIEW SCHEMA.MY_VIEW ADD CONSTRAINT MY_VIEW_PK PRIMARY KEY (CODIGO_MONEDA) RELY DISABLE;
我已经尝试了上述查询的多个版本,将 NVL 添加到其他字段,创建主键。我就是无法让它工作。
【问题讨论】:
-
我想象你正在使用 DB First,是吗?
-
@bubi 是的,DB First。我将编辑添加该问题的问题。
标签: oracle entity-framework entity-framework-6