【问题标题】:Entity Framework is not generating entity classes实体框架不生成实体类
【发布时间】:2020-04-30 15:57:32
【问题描述】:
  • 实体框架:6.4
  • Oracle 托管数据访问:19.7
  • Oracle 托管数据访问实体框架:19.7
  • Visual Studio:2019 年
  • Oracle 数据库:11g

实体框架向导运行没有任何问题,但是在我点击完成后,加载几秒钟后,我得到了这个:

Model.tt 没有生成任何类,并且在输出窗口中它所说的只是有错误,检查 Model.edmx,但这些错误是关于它无法为没有主键的某些视图生成类,并且即使它生成了其余的表格,我也会得到错误。

错误可能在数据库中,因为它为旧版本的架构生成了模型。我曾尝试重新安装实体框架,在不同的机器上生成...有一次我删除了一些新添加的程序,它设法生成了模型,但第二次,当我重新导入架构并再次删除相同的程序时,它失败了。

我不知道在较新的 Oracle 版本上是否有任何不同,但在 11g 上使用 Entity 一直很痛苦。

编辑:我想知道该怪谁!

【问题讨论】:

    标签: c# oracle entity-framework entity-framework-6 odac


    【解决方案1】:

    请尝试此步骤

    1. 删除实体框架:6.4
    2. 删除 Edmx (Model.edmx)
    3. 新增Edmx(Model.edmx)(假设你已经连接数据库),VS 2019会自动添加引用Entity Framework 5
    4. 将 Entity Framework 5 更新到最新版本

    【讨论】:

    • 嘿,还是一样的输出。我应该提到我之前在 EF 5.0 上尝试过,但没有成功。只是这次我让VS添加了EF,正如你所说的。
    • 那么可能EF上的oracle库有问题,请尝试检查库的兼容性吗?
    • Nuget 说 EF 应该与上面列出的那些版本一起使用。我在 EF4 和 Oracle ODAC 12.xx 上遇到了向导崩溃的问题,但我不想回到版本搜索...
    • 就版本而言,我 100% 确定它适用于旧架构上的当前版本的库。
    【解决方案2】:

    找到了。

    ...

    在经历了新旧模式之间的每一次更改后,我发现外键约束具有不同类型、NUMBER(1) 和NUMBER(10)。我之前就知道 EF 不支持这个,所以谢谢。

    我不知道为什么这必须打破模型生成。仅当有任何错误报告时...

    【讨论】:

    • 恭喜! edmx 中的主键非常重要,您可以搜索它以及为什么它很重要
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多