WCF RIA サービスを介して Lightswitch RTM から既存の MySQL DB に接続しようとしています。
私は次のことをしました:
- 開発マシンの MySQL 開発者ゾーンからMySQL コネクタ バージョン 6.3.7 をインストールします。最新バージョン 6.4.3 は機能していないようで、Visual Studio 内から接続を確立すると、「サーバーと同期していません」というエラーが表示されます。
- 新しいデータ接続を作成し、プロバイダーとして MySQL データベースを選択し、MySQL サーバーの IP アドレス、ユーザー名、およびパスワードを指定して、Visual Studio からの接続をテストします。
これは機能し、DB は正しく表示されます。
次に、こちらのチュートリアルに従って、 WCF RIA サービスを作成します。
- テンプレートWCF RIA サービス クラス ライブラリに基づいて、新しいプロジェクトをソリューションに追加します。
ADO.NET エンティティ データ モデルを WCF RIA Web プロジェクトに追加し、ウィザードを使用してそれを MySQL データベースに接続します。生成された接続文字列は
metadata=res://*/Model.csdl|res://*/Model.ssdl|res://*/Model.msl;provider=MySql.Data.MySqlClient;provider connection string="server=10.192.xx.yy;User Id=xxxxxxx;database=projet;password=xxxxxxxxxx;Persist Security Info=True"
.ドメイン サービスを WCF RIA Web プロジェクトに追加します。
これは正しく動作します。エンティティ ダイアグラムには、データベースの選択された 3 つのテーブルとすべてのフィールドが表示されます。
次に、こちらのチュートリアルに従って、WCF RIA サービスをライトスイッチに接続しました。
- Lightswitch プロジェクトで、新しいデータ ソースを作成し、WCF RIA サービスにアタッチします。
- WCF RIA Web プロジェクトへの参照を追加し、必要なデータ ソース オブジェクトを選択します。これは機能し、データ ソース オブジェクトが正しくインポートされます。
- 最後に、接続文字列を WCF RIA Web プロジェクト ファイル App.config から、Lightswitch プロジェクトのサーバー生成プロジェクト内のファイル web.config にコピーします。行は次のとおりです。
<add name="b70821ef-..." connectionString="metadata=res:///Model.csdl|res:///Model.ssdl|res://*/Model.msl;provider=MySql.Data.MySqlClient;provider connection string="server=10.192.xx.yy;User Id=xxxxxxx;database=projet;password=xxxxxxx;Persist Security Info=True"" providerName="System.Data.EntityClient"/>
ソリューションはエラーなしで構築できます。ただし、Lightswitch アプリケーションを実行すると、MySQL テーブルの詳細画面に赤い十字のみが表示され、データをロードできないことが示されます。
web.config に貼り付けた接続文字列が間違っていると思われます。
上記のアプローチで何が間違っている/欠けているか、または問題を特定してデバッグするにはどうすればよいですか?