2011-12-24 120 views
0

当在Windows Phone 7上更新SQL Server CE中的表时遇到问题。当我调用提交更改时,应用程序将关闭,没有任何异常或错误。 Visual Studio甚至还在运行。Windows Phone 7 SQL Server CE rowversion

删除rowversion列解决了问题。我环顾四周,并不确定我是否缺少某些东西,但在使用rowversion列时是否还有其他特殊需要?

以下是列的属性。试图解决这个问题时,我创建了一个简单的表格。它有3列:

  • Id(GUID)
  • TestColumn(nvarchar100)
  • MyRowVersion(rowversion)

代码:

[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_MyRowVersion", AutoSync=AutoSync.Always, DbType="rowversion", CanBeNull=true, IsDbGenerated=true, IsVersion=true, UpdateCheck=UpdateCheck.Never)] 
+0

我不能repro与可为空的rowversion列,你可以分享你的创建表脚本? – ErikEJ 2011-12-27 08:36:24

+0

谢谢Erik,在尝试在单独的解决方案中重新创建rowversion正在工作。我试图弄清楚为什么它不能在另一个解决方案中工作。 – 2011-12-28 03:27:58

+0

我读了你的新文章,并添加了一个rowversion回到我的数据库,我仍然可以使用db.SubmitChanges()进行简单的更新。我可以在测试应用程序中使用它。我不知道它是否与在async ctp的后台任务中运行的进程有关,这很奇怪。 – 2012-02-22 07:21:40

回答

1

假设你生成DataContext的SQL Server Compact Toolbox,如果你有索引,就有一个bug它覆盖与主键相同的列,导致崩溃。尝试使用最新的Toolbox插件(版本2.6.2或更高版本)重新生成DataContext。解决该问题的方法是删除“重复”索引。