VS2010 を使用して、2 つの単純なテーブルを持つ 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 アプリケーションが終了するだけです。
try / catch は役に立ちません。
TestTab tT = (from A in dC.TestTabs select A).FirstOrDefault();
if(tT != null) {
tT.TheText += "1";
dC.SubmitChanges();
}
一意のインデックスを削除すると、コードは正常に機能します。
なぜこれが起こるのですか?
マンフレッド