【问题标题】:Could not determine storage version - Entity Framework无法确定存储版本 - 实体框架
【发布时间】:2023-03-12 22:50:01
【问题描述】:

我正在当前解决方案的一个单独项目中实现代码优先模式。因为我这样做了,并且我在DbContext 中初始化了我的连接字符串,所以我收到了这个奇怪的错误:

无法确定存储版本;有效的存储连接或 版本提示是必需的。

我使用的是 Entity Framework 5.0.0.0,而我的其他解决方案项目运行良好,因为它们使用 EDMX 文件进行数据库访问,但只有我的代码优先项目会引发此异常。它是什么,为什么?

【问题讨论】:

    标签: c# entity-framework entity-framework-5


    【解决方案1】:

    解决了同样的问题:

    转到解决方案资源管理器

    1. 右键单击“xxx.edmx”文件
    2. 选择“打开方式”>> Editor XML Editor
    3. 将 ProviderManifestToken="XXXX" 更改为 2008

    【讨论】:

    • 它说 2012,我的开发机器和外部服务器都有 SQL Server 2012,我只是尝试了这个,因为好吧......实际上还没有使用 value = "2012" 所以你可能会输……然后开始工作!谢谢!它有效!
    • 这也对我有用。我认为这可能与在我的开发服务器中使用 SQL 2014 时在部署版本中定位 SQL 2008 有关(甚至不要问为什么)。
    • 我很困惑。 OP似乎暗示他们的项目没有EDMX文件,那么他们怎么能右键单击它呢?
    【解决方案2】:

    当我将使用它的每个项目的实体框架升级到实体框架 6.1.2 时,问题似乎得到了解决。

    像魅力一样工作!

    【讨论】:

      【解决方案3】:

      删除 EF 表 __MigrationHistory,假设您只是在测试中使用迁移。

      【讨论】:

        【解决方案4】:

        安装EFTools6.1.3ForVS2012,我的解决了

        【讨论】:

        • 您能否更深入地解释一下这是什么,以及为什么/在什么情况下它可以改变任何东西?该工具是否必须与我们的产品一起交付,以便后者可执行?
        【解决方案5】:

        我有同样的问题。就我而言,由于某种原因,应用程序配置在 configSections 标记中没有实体框架部分。添加它解决了我的问题。

        【讨论】:

        • 最好在问题和答案中以文本形式发布文本。请将您的图片更改为文字。
        • 你能解释一下为什么这应该有帮助吗?据我了解,<configSections> 元素的子元素只是用来告诉 .NET 的配置 Xml 处理器如何反序列化同一配置文件中的其他部分。如果我的配置文件开头没有任何<entityFramework> 部分,那么在<configSections> 元素中声明该部分类型有什么影响吗?
        【解决方案6】:

        按照以下步骤操作。

        1. 将实体框架更新到最新的稳定版本。
        2. 更新 edmx 模型。
        3. 右键单击文件 .edmx
        4. 使用.. 编辑器 XML 打开
        5. 将 ProviderManifestToken="XXXX" 更改为 2008

        【讨论】:

          猜你喜欢
          • 2016-10-17
          • 2013-12-25
          • 2010-10-08
          • 1970-01-01
          • 2021-12-18
          • 1970-01-01
          • 1970-01-01
          • 2013-06-16
          • 1970-01-01
          相关资源
          最近更新 更多