我有一个简单的Lightswitch-基于Silverlight的Web客户端。 Client.csproj和Server.csproj表示LightSwitchVersion
是v3.0
。它在
Visual Studio 2012更新4
VS11的LightSwitch扩展性工具包
我有2个扩展名,都被选中:
LightSwitch大都会外壳和主题
Microsoft LightSwitch扩展
我有一个MySQL表
CREATE TABLE `images` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`legend` varchar(200) NOT NULL,
`preview` blob,
`createdAt` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
在为表创建屏幕之前,我在数据源中将
preview
字段声明为图像类型。但是正在运行的应用程序对此表示欢迎使用Lightswitch 2.0,一切运行正常。但是,由于我已经升级到v3.0,所以这是破坏所有内容的唯一问题:-(
最佳答案
我本人没有遇到这个问题,但引起了兴趣。 :)
似乎OData层正在使用blob列的内容来确保数据并发性,而URI太长了。在本机SQL Server表中,您可以仅添加一个Rowversion列,并将其选择用于并发目的-实际上,Lightswitch内部数据库会自动为您执行此操作。我的理解是MySQL没有等效的Rowversion类型。
解决方法是在MySQL表上创建另一列,该列在每次更新时均由MySQL触发器递增,从而使其成为事实上的并发字段。更新数据源,然后编辑.lsml文件以将<UseForConcurrency />
属性添加到该列。
完整的讨论在https://social.msdn.microsoft.com/Forums/vstudio/en-US/44581489-438d-4844-8194-0b4a0a41e56f/exception-invalid-uri-the-uri-string-is-too-long?forum=lightswitch