Windows Phone 7 SQL Server CE 行版本
Posted
技术标签:
【中文标题】Windows Phone 7 SQL Server CE 行版本【英文标题】:Windows Phone 7 SQL Server CE rowversion 【发布时间】:2011-12-24 05:24:38 【问题描述】:在 Windows Phone 7 上更新 SQL Server CE 中的表时遇到问题。当我调用提交更改时,应用程序将关闭而没有任何异常或错误。 Visual Studio 甚至仍在运行。
删除rowversion
列解决了这个问题。我环顾四周,不确定我是否遗漏了什么,但在使用 rowversion
列时有什么特别需要做的吗?
这里是列的属性。试图弄清楚这一点时,我创建了一个简单的表格。它有 3 列:
Id
(指导)
TestColumn
(nvarchar100)
MyRowVersion
(行版本)
代码:
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_MyRowVersion", AutoSync=AutoSync.Always, DbType="rowversion", CanBeNull=true, IsDbGenerated=true, IsVersion=true, UpdateCheck=UpdateCheck.Never)]
【问题讨论】:
我无法使用可为空的 rowversion 列进行复制,你能分享你的创建表脚本吗? 感谢 Erik,尝试在单独的解决方案中重新创建 rowversion 正在工作。我试图弄清楚为什么它在其他解决方案中不起作用。 我阅读了您的新文章,然后将 rowversion 添加回我的数据库,但我仍然可以使用 db.SubmitChanges() 进行简单更新使其崩溃。我可以让它在测试应用程序中工作。我想知道它是否与在异步 ctp 的后台任务中运行的进程有关,奇怪。 假设您使用工具箱生成数据上下文,如果您的索引覆盖了导致崩溃的主键,则会出现错误。尝试使用最新的 Toolbox 插件(版本 2.6.2)重新生成 DataContext,并告诉我它是否有效。 是的,我正在使用工具箱来生成上下文。当我回来时,我会检查并尝试这个并让你知道。谢谢。 【参考方案1】:假设您使用 SQL Server Compact Toolbox 生成数据上下文,如果您的索引包含与主键相同的列,则会导致崩溃。尝试使用最新的 Toolbox 插件(版本 2.6.2 或更高版本)重新生成 DataContext。该问题的解决方法是删除“重复”索引。
【讨论】:
以上是关于Windows Phone 7 SQL Server CE 行版本的主要内容,如果未能解决你的问题,请参考以下文章
使用 WCF 将 SQL Azure 连接到 Windows Phone 7
Windows Phone 7.5 的 SQL Server CE (local db) 是不是支持触发器?
Windows Phone 应用程序仅适用于 Windows Phone 7?