我使用 VS2010 生成带有两个简单表的 SQL Server Compact 数据库。
两者都有一列TheID
(int)。一方面,我将唯一设置为 true,另一方面则没有。
我在此列上设置了主键。
CREATE TABLE [TestTab] (
[TheID] int NOT NULL
, [TheVal] nvarchar(100) NOT NULL
);
GO
ALTER TABLE [TestTab] ADD CONSTRAINT [PK_TestTab] PRIMARY KEY ([TheID]);
GO
对于另一个(在列上具有唯一集),我得到:
CREATE TABLE [TestTab2] (
[TheID] int NOT NULL
, [TheVal] nvarchar(100) NOT NULL
);
GO
ALTER TABLE [TestTab2] ADD CONSTRAINT [PK_TestTab2] PRIMARY KEY ([TheID]);
GO
CREATE UNIQUE INDEX [UQ__TestTab2__00000000000033E9] ON [TestTab2] ([TheID] ASC);
GO
接下来,我使用 SQL Server Compact Toolbox 创建数据上下文。
选择数据工作正常 - 但是当我尝试更新代码时它会中断dc.SubmitChanges()
。
只是我的 WP7 应用程序结束。
尝试/捕获没有帮助。
TestTab tT = (from A in dC.TestTabs select A).FirstOrDefault();
if(tT != null) {
tT.TheText += "1";
dC.SubmitChanges();
}
如果我删除唯一索引,则代码可以正常工作。
任何想法为什么会发生这种情况?
曼弗雷德