【问题标题】:Windows Phone 7 SQL Server CE rowversionWindows Phone 7 SQL Server CE 行版本
【发布时间】: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,并告诉我它是否有效。
  • 是的,我正在使用工具箱来生成上下文。当我回来时,我会检查并尝试这个并让你知道。谢谢。

标签: linq-to-sql windows-phone-7 sql-server-ce


【解决方案1】:

假设您使用 SQL Server Compact Toolbox 生成数据上下文,如果您的索引包含与主键相同的列,则会导致崩溃。尝试使用最新的 Toolbox 插件(版本 2.6.2 或更高版本)重新生成 DataContext。该问题的解决方法是删除“重复”索引。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多