在VS2013中,我正在使用MVVM创建和WPF应用程序;第一个实现是使用SQL Server,它工作起来很有魅力。
第二阶段是支持Advantage Sybase。为此,我下载了Advantage Data Provider,以使“连接中的连接”下拉列表(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”无效。
“。”
关于如何正确使用数据库提供者有什么想法吗?

最佳答案

首先,Advantage数据库服务器尚未正式支持VS 2013。我相信,一旦ADS12.0发布,官方的支持就可以得到。
但是……我确实有机会尝试一下,而且效果不错。
请确保您使用的是11.1 ads.net数据提供程序。它包括对实体框架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>

08-06 14:56