2012-09-13 38 views
1

加入
「具有相同標識的實體已經存在此EntitySet的」實體時,我得到以下錯誤
令人沮喪的部分是,它是一個間歇性的問題,我很難重現。 我的代碼:消息:具有相同標識的實體已經存在此EntitySet的

 private void OKButton_Click(object sender, RoutedEventArgs e) 
    { 
     this.IsHitTestVisible = false; 
     Form Form = _context.Forms.FirstOrDefault(); 

     Form.Transactions.Add(new Transactions 
     { 
      Comments = textbox_taskcomments.Text, 
      By = UserID, 
      Name = Name, 
      IssuedOn = DateTime.Now, 
      StatusID = StatusID 
     }); 

     this.DialogResult = DevExpress.Xpf.Core.DialogResult.OK; 
     this.Close(); 
    } 

任何幫助,將不勝感激,因爲我不知道從哪裏開始....

感謝

+0

嘿,剛纔編輯我的答案提供更詳細一點,問候 – Killrawr

+0

此錯誤表示您嘗試添加的實體已存在於dbContext中。你可以張貼一張關於你的表格結構的圖表嗎? –

回答

1

您是否嘗試過的方法contains

包含:指定EntitySet是否包含特定實體。

在修改之前,您應該檢查EntitySet的內容。

Transactions t = new Transactions{ 
     Comments = textbox_taskcomments.Text, 
     By = UserID, 
     Name = Name, 
     IssuedOn = DateTime.Now, 
     StatusID = StatusID 
}; 
//check that the entity does not yet contain t 
if(!Form.Transactions.Contains(t)){ 
//do something. 
} 

(我不知道你的代碼的其餘部分,但..從我read,這可能是一個解決方案)

+0

感謝Killrawr的回答,但事情是交易總是獨一無二的...我無法在我的代碼中看到任何地方,我無論如何都在複製此實體:S – user1106741

+0

良好的編碼習慣是爲了確保這些錯誤不會發生,即使使用'contains',錯誤是否仍然會發生?最親切的問候 – Killrawr

相關問題