2011-09-07 58 views
-1

我有一個非常奇怪的問題。LINQ2SQL更新數據庫,但只有當我在SQL Server中查看時

我有3張桌子。

  1. 位置
  2. PositionAttachments
  3. 附件

我不會與鍵和外鍵作爲承擔你應該有點明顯。

如果我添加一個新的位置,附件和位置附件都很好。

如果我添加一個新的附件到現有的位置記錄,我會得到以下內容。

  1. 頭寸表被更新,我可以在屏幕上看到的變化
  2. 附件表中有新的記錄
  3. PositionAttachments表有新的記錄
  4. 新的附件並不在屏幕上我的應用程序
  5. 關閉內出現應用程序,重新編譯和重新運行,我有相同的4
  6. 通過SQL服務器查看任何表,我被踢出了我的會話,一旦我重新登錄,我看到屏幕上的記錄。

在任何時候都不會產生錯誤。

更新記錄代碼;

public void AddAttachmentToPosition(PositionsAvailable positionModel, Attachment attachment) 
    { 
     //attachment.id = Guid.NewGuid(); 
     dc.Attachments.InsertOnSubmit(attachment); 

     PositionAttachment positionAttachment = new PositionAttachment(); 
     positionAttachment.PositionId = positionModel.PositionId; 
     positionAttachment.AttachmentId = attachment.id; 
     //positionAttachment.id = Guid.NewGuid(); 

     dc.PositionAttachments.InsertOnSubmit(positionAttachment); 
     dc.SubmitChanges(); 
    } 

編輯

我已經看過由數據上下文生成的日誌,我得到這個爲PositionAttachments插入。它看起來與附件表基本相同。

DECLARE @output TABLE([id] UniqueIdentifier) 
INSERT INTO [dbo].[PositionAttachments]([PositionId], [AttachmentId]) 
OUTPUT INSERTED.[id] INTO @output 
VALUES (@p0, @p1) 
SELECT [id] FROM @output 
-- @p0: Input UniqueIdentifier (Size = 0; Prec = 0; Scale = 0) [92a3627d-ad01-466e-a315-423c851efc5d] 
-- @p1: Input UniqueIdentifier (Size = 0; Prec = 0; Scale = 0) [db566728-a313-40c7-af82-0a2f147234eb] 
-- Context: SqlProvider(Sql2008) Model: AttributedMetaModel Build: 3.5.30729.5420 

在我看來,這看起來很正常。此外,當我添加一個新位置時,相同的代碼工作,而不是當我將附件添加到現有位置時。

+0

什麼是你的戰略,關於DC的壽命是多少? – Pleun

+0

不管誰低估,如果你提到爲什麼,這將是很好的! – griegs

回答

1

只是一種預感,如果你嘗試:

PositionAttachment positionAttachment = new PositionAttachment(); 
    positionAttachment.Position = positionModel; 
    positionAttachment.Attachmen = attachment; 

雖然我覺得DC也應該拿起ID的正確

+0

謝謝,但這也行不通。這是我已經做了一百萬次,所以我只是不知道爲什麼這不會工作 – griegs

+0

其實,這與幾個國防部,正在工作一點點。謝謝。我認爲其餘的現在應該相當容易。 – griegs

+0

什麼是mods--因爲我很好奇它爲什麼現在在工作...... – Pleun

相關問題