我正在尝试通过 WCF RIA 服务从 Lightswitch RTM 连接到现有的 MySQL 数据库。
我做了以下事情:
- 在我的开发机器上从 MySQL 开发者专区安装 MySQL 连接器版本 6.3.7。从 Visual Studio 中建立连接时,最新版本 6.4.3 似乎无法正常工作并给出错误“与服务器不同步”。
- 通过创建新数据连接、选择 MySQL 数据库作为提供者并提供 MySQL 服务器 IP 地址、用户名和密码来测试 Visual Studio 的连接。
这有效,数据库正确显示。
然后我按照这里的教程使用创建 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 项目。
这可以正常工作。实体图显示了数据库的三个选定表以及所有字段。
然后我按照本教程将 WCF RIA 服务连接到lightswitch:
- 在 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 的连接字符串是错误的。
上述方法有什么问题/缺少什么,或者我如何隔离和调试问题?