2011-11-08 22 views
0

私は、次のコードを実行すると:例外がスローされませんDeleteOnSubmitは:レコードが削除されず、例外はスローされません

Public Function DeleteSessionItem(ByVal thisSessionItem As SessionItem) As Boolean 
    Using db As New SEMDBDataContext(My.Settings.SEMDBConnectionString) 
     db.DeferredLoadingEnabled = False 
     If thisSessionItem.Modified IsNot Nothing Then 
      db.Log = Console.Out 
      db.SessionItems.Attach(thisSessionItem, True) 
      db.SessionItems.DeleteOnSubmit(thisSessionItem) 
      Try 
       DeleteSessionItem = db.GetChangeSet.Deletes.Count > 0 
       db.SubmitChanges() 
      Catch ex As Exception 
       DeleteSessionItem = False 
      End Try 
     End If 
    End Using 
End Function 

、チェンジは、カウントが1で削除して、SQLステートメントは次のとおりです。

DELETE FROM [dbo].[SessionItems] WHERE ([ItemID] = @p0) AND ([Modified] = @p1) 
-- @p0: Input BigInt (Size = 0; Prec = 0; Scale = 0) [61] 
-- @p1: Input Timestamp (Size = 8; Prec = 0; Scale = 0) [SqlBinary(8)] 
-- Context: SqlProvider(Sql2005) Model: AttributedMetaModel Build: 3.5.30729.1 

SELECT NULL AS [EMPTY] 
FROM [dbo].[SessionItems] AS [t0] 
WHERE [t0].[ItemID] = @p0 
-- @p0: Input BigInt (Size = 0; Prec = 0; Scale = 0) [61] 
-- Context: SqlProvider(Sql2005) Model: AttributedMetaModel Build: 3.5.30729.1 

をただし、レコードはSessionItemsテーブルから削除されません。これは(テーブルセッションの)子テーブルであり、SessionItemsには子テーブルがありません。

なぜレコードが削除されていないのでしょうか?

答えて

1

DBMLファイルを更新している間に、誤って以前のバージョンのデータベースからテーブルをドラッグしたことがあります。次に、プロジェクトの設定リストに2つの接続文字列がありました。私は上記のコードで古い接続文字列を使用していました。新しい接続文字列を使用すると、上記のコードが機能します。

関連する問題