C# - Linq to SQL:cannot add eine Entität, die schon existiert
Bin ich mit Linq für Einfügen,Löschen und aktualisieren Sie die Datenbank in meinem code.
Beim einfügen von Daten mit InsertOnSubmit, ich Bin immer die cannot add an entity that already exists
Ausnahme.
Bitte haben Sie einen Blick mein code
private static void AddNewPriceSettings(PRICE_SETTING priceSettingsInfo)
{
PRICE_SETTING priceSetting = new PRICE_SETTING();
priceSetting = priceSettingsInfo;
DataContext.CommonUsers.PRICE_SETTINGs.InsertOnSubmit(priceSettingsInfo);
DataContext.CommonUsers.SubmitChanges();
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
nur legen Sie die Eigenschaften für die neue priceSetting.
Wenn Sie anrufen
AddNewPriceSettings()
mit einer vorhandenenPRICE_SETTING
Objekt, Sie sind in der Tat versuchen, um es erneut hinzuzufügen. Die zweite Zeile in Ihrer Methode funktioniert. Dienew PRICE_SETTING();
Sie erstellen in der ersten Zeile ist dann nicht verwiesen wird, um mehr und GC ' ed, ohne zu versuchen, um es einzufügen.Wenn Sie möchten, erstellen Sie eine Kopie, müssen Sie Klonen die
priceSettingsInfo
in diepriceSetting
variable (Sie können verwenden verschiedene Techniken) vor dem einfügen und Absenden.Das problem ist eindeutig durch die Fehlermeldung. Sie haben bereits eine Zeile in der Datenbank, die enthält der gleichen juristischen Person wie die, die Sie versuchen, zu legen.
Wie funktioniert SQL entscheiden, ob zwei Elemente sind "die gleichen"? Es verwendet einen Schlüssel, der Spalte, die in der Regel ist eine integer-id.
So, das führt mich zu der Frage, die Sie - wie sieht Ihr Spaltendefinitionen suchen Sie für die betroffene Tabelle? Und wo bekommen Sie das
PRICE_SETTING
übergeben wird, in der Methode??Das problem könnte auch sein, dass Sie versuchen, führen Sie eine update auf einem bereits vorhandenen Objekt - in diesem Fall müssen Sie verschiedene Methoden verwenden. Bitte teilen Sie mehr info in Bezug auf den Kontext an.