4

ErikEJ の SQL Server Compact/SQLite Toolbox for Visual Studio を使用しています。環境は、Visual Studio 2013.5 を搭載した Windows 7 x64 です。

私はブログhttp://erikej.blogspot.dk/2013/11/entity-framework-6-sql-server-compact-4_25.htmlの例に従っていますが、

" ... プロジェクト フォルダ内のデータベース ファイルに接続します:",

[SQL Server Compact/SQLite 接続の追加] を右クリックすると、ボックスが表示されますが、下部が赤くなっています

「この接続を EF6 ツールで使用するために保存できません。SQL Server Compact DbProvider がインストールされていることを確認し、可能であれば Visual Studio を再起動してください」

戻って [About] ボタンをクリックすると、

SQL Server Compact 4.0 in GAC - Yes - 4.0.8482.1 
SQL Server Conpact 4.0 DbProvider - No

SQL Server Compact 4.0 DDEX provider - No 
SQL Server Compact 4.0 Simple DDEX provider - Yes
SQL Server Compact 4.0 Engine Test: PASS!

SQL Server Compact と SQL Server Compact Toolbox をアンインストールし、両方を再インストールしましたが、同じエラーが引き続き発生します。

SQL Server Compact 4.0 DbProvider を yes にする方法を教えてください。

ありがとう

編集無効なエントリを含む可能性のある machine.config の関連部分の詳細を追加しました。

<system.data>
    <DbProviderFactories>
        <add name="Odbc Data Provider" invariant="System.Data.Odbc" description=".Net Framework Data Provider for Odbc" type="System.Data.Odbc.OdbcFactory, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
        <add name="OleDb Data Provider" invariant="System.Data.OleDb" description=".Net Framework Data Provider for OleDb" type="System.Data.OleDb.OleDbFactory, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
        <add name="OracleClient Data Provider" invariant="System.Data.OracleClient" description=".Net Framework Data Provider for Oracle" type="System.Data.OracleClient.OracleClientFactory, System.Data.OracleClient, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
        <add name="SqlClient Data Provider" invariant="System.Data.SqlClient" description=".Net Framework Data Provider for SqlServer" type="System.Data.SqlClient.SqlClientFactory, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
        <add name="Microsoft SQL Server Compact Data Provider 4.0" invariant="System.Data.SqlServerCe.4.0" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/></DbProviderFactories>
</system.data>

上記をhttps://developer.teradata.com/blog/netfx/2010/12/dbproviderfactories-demystifiedの例と照らし合わせて確認しましたが、その部分に明らかに問題があることはわかりません。

あはは。私は間違った場所を探していました。C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config の下に

<system.data>
    <DbProviderFactories><add name="Microsoft SQL Server Compact Data Provider 4.0" invariant="System.Data.SqlServerCe.4.0" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/></DbProviderFactories>
</system.data>

うーん...他のものはありません。

4

2 に答える 2

4

よし、やっとここまで来れた。

Visual Studio 2013 と SQL Server Express をアンインストールしました。ここにリストされている手順を使用する前にこれを行っていましたhttps://dba.stackexchange.com/questions/68373/how-to-uninstall-sql-server-2012-not-showing-in-control-panels-programs-and- SQL サーバーの場合はfeで、ここではVisual Studio 2010 を完全にアンインストールする方法を教えてください。使用して

D:\vs_community.exe /uninstall /force

以前にこれを実行して VS2013.5 を再インストールしたことがありますが、上記のエラーが発生し、この質問が促されました。だから私がした上記のページからのさらなるアドバイスに従って

wmic product where "name like 'microsoft visual studio%'" call uninstall /nointeractive
wmic product where "name like 'microsoft sql server%'" call uninstall /nointeractive

これにより、今まで取り残されていたものが一掃されました。

また、Revo Uninstaller を使用してアンインストールし、それを使用してマシンに残っている痕跡をスキャンしました。これにより、取り残されていた残骸も拾い上げられました。

結局、再度 VS2013.5 をインストールしたところ、エラーなく SQL Server Compact Toolbox にデータベースを正しく認識させることができました。これが同じ問題に遭遇した他の人に役立つことを願っています。

于 2015-09-06T15:08:52.143 に答える