【问题标题】:Using the ADO.NET Entity Framework with the Advantage Database Server将 ADO.NET 实体框架与 Advantage 数据库服务器一起使用
【发布时间】:2014-10-02 16:25:04
【问题描述】:

我正在使用 VS 2013 中的 MVVM 创建 WPF 应用程序;第一个实现是使用 SQL 服务器,它就像一个魅力。

第二阶段是支持Advantage Sybase。为此,我下载了 Advantage Data Provier 以在连接下拉列表 (http://www.codeguru.com/csharp/.net/article.php/c17027/Using-the-ADONET-Entity-Framework-with-the-Advantage-Database-Server.htm) 中有连接。

对于 VS 2013 存在问题,解决方法是手动编辑注册表以拥有此提供程序 (http://blog.nwoolls.com/2012/07/25/registering-missing-data-providers-with-visual-studio-2012/)。

现在我在下拉菜单中有提供程序,我可以选择提供程序,但是当我尝试生成用于生成数据库的脚本时,我遇到了一个奇怪的错误:

错误: " 找不到合适的 DbProviderManifest 来生成 SSDL。提供的提供程序清单令牌“2008”无效。 "

关于如何正确使用 DB Provider 有什么想法吗?

【问题讨论】:

    标签: c# wpf entity-framework advantage-database-server


    【解决方案1】:

    首先,Advantage Database Server 尚未正式支持 VS 2013。我相信一旦 ADS 12.0 发布就可以获得官方支持。

    但是....我确实有机会尝试一下,它正在工作。

    确保您使用的是 11.1 ADS .Net 数据提供程序。它包括对 Entity Framework 5 的支持(据了解,目前 ADS 中没有任何内容包括对 EF6 的支持)

    从 Nate Wools 导出您在第二篇文章中提到的 4 个密钥。在我的情况下,我从 VS 2012(注册表路径中的 11.0)导出。 11.0 -> 12.0 上的完整查找/替换,包括 Microsoft.VisualStudio.Data.Framework 的程序集版本

    (免责声明,我没有机会尝试 MVVM,只是一个普通的 Windows 窗体应用程序,但效果很好)

    自动创建和更新的 App.Config。也许检查一下你的?

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
      <configSections>
        <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
        <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
      </configSections>
      <startup>
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.1" />
      </startup>
      <connectionStrings>
        <add name="Entities" connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=Advantage.Data.Provider;provider connection string=&quot;Data Source=E:\ADS\School\School.add;User ID=adssys&quot;" providerName="System.Data.EntityClient" />
      </connectionStrings>
      <entityFramework>
        <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
          <parameters>
            <parameter value="v11.0" />
          </parameters>
        </defaultConnectionFactory>
      </entityFramework>
    </configuration>
    

    【讨论】:

    • 感谢您的反馈。确实我用的是EF6,换成5试试看。
    • 嘿 Edgar,我也尝试过使用普通的 Windows 窗体、EF5 和 ADP 11.10;现在确实正在尝试生成数据库脚本,但仍然出错:正在运行转换:System.InvalidOperationException:由名为“CsdlToSsdlAndMslActivity”的活动生成的 SSDL 无效,并出现以下错误:未找到 ADO 的实体框架提供程序。 NET 提供程序,具有不变的名称“Advantage.Data.Provider”。确保提供程序已在应用程序配置文件的“entityFramework”部分注册。请参阅go.microsoft.com/fwlink/?LinkId=260882 了解更多信息。
    • 我正在使用 EF5,正在警告我正在使用 EF5,我需要升级到最新版本;所以即使链接给了我对 EF6 的引用,它也不是 EF6。有什么想法吗?
    • 嗯,不确定。我刚刚创建了一个新项目(.net 4.5),然后添加了一个新的 ADS.Net 实体数据模型并且它工作正常。我看到它在我的本地 app.config 中添加了许多行。我将用添加的内容编辑我的答案。不知道是从哪里捡来的。
    • 谢谢 Edgar,还是有问题,也许我在执行这些步骤时做错了;我会再试一次...也许在途中丢失了一些东西。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-23
    • 1970-01-01
    • 2011-06-20
    • 1970-01-01
    • 1970-01-01
    • 2011-01-01
    相关资源
    最近更新 更多