实体框架:从Oracle View创建实体

时间:2016-09-20 16:12:57

标签: oracle entity-framework entity-framework-6

我已经有这个问题已经有一个多星期了,我知道有很多关于这个的问题,但我还没有看到有人使用过Oracle。我正在使用EF Database First,我需要从Oracle View创建一个实体,因为“你需要定义一个主键”限制,EF不会让我。

我收到的消息:

  1. “VIEW_NAME”类型的关键部分“COLUMN_NAME”无效。密钥的所有部分都必须是不可为空的。
  2. 警告错误6002:表/视图“VIEW_NAME”未定义主键。已推断密钥,并将定义创建为只读表/视图。
  3. 我尝试过的解决方法:

    1. 修改de .edmx,并自行添加主键。 结果:框架会说“该列可以为空,我们无法接受”

    2. 使用以下语法修改我的视图:

      amazon = bottlenose.Amazon(
          amazon_access_key,
          amazon_secret_key,
          amazon_assoc_key,
          Region=amazon_region_id,
          MaxQPS=0.9
      )
      response = amazon.ItemSearch( .... blah ...)
      
    3. 我上面尝试了很多版本的查询,将NVL添加到其他字段,创建了主键。我无法让它发挥作用。

1 个答案:

答案 0 :(得分:2)

不幸的是,我认为没有解决方案。 我抱怨说,从今年年初开始,EF团队已经认识到这是一个错误,但他们在今年年中削减了EF6开发EF Core的所有错误修复。 请看这个链接:http://entityframework.codeplex.com/workitem/2888

事实上,问题出在设计师身上。我认为你正在使用Visual Studio 2015;这就是为什么我们仍在使用Visual Studio 2012和EF 6.1.3。

如果没有修复,我们无法迁移到Visual Studio 2015。

我很惊讶没有那么多人抱怨这一点。对于使用Oracle数据库的.NET项目来说,它只是一个杀手锏。

此致