2009-07-27 14 views
0

Ich habe Web-Anwendung, wo ich Linq zu Business-Enites verwende Ich habe Business-Datenmodell.Update Datenmodell Business Entity

das Problem ist:

Ich habe Tabelle mit einer Spalte, dass es Null-Wert erlauben dosen't, wenn ich versuche, diese Tabelle zu aktualisieren, die folloeing Fehler auftreten: Fehler Die Eigenschaft "zB Carrier ist Teil der die Schlüsselinformationen des Objekts und kann nicht geändert werden

was kann ich tun?

Antwort

1

Am einfachsten fügen Sie der Tabelle eine zweite Spalte mit einem eindeutigen Schlüssel, z. B. guid, hinzu und erstellen eine schreibgeschützte Eigenschaft für die entsprechende Entität.

Linq für Unternehmen benötigt eine Art von Schlüssel, um zu verfolgen, was in der Datenbank aktualisiert werden soll. Normalerweise ist dies der Primärschlüssel für die Datenbanktabelle. Wenn Sie keinen Primärschlüssel haben, kann er die Datenbank nicht zuverlässig aktualisieren und sendet Ihnen dann eine Ausnahme.

Auch wenn es keinen Primärschlüssel explizit auf der Tabelle linq zu Business-Entities gesetzt wird wählen Sie eine der Spalten (denke, es ist die erste Spalte in der Tabelle, aber ich könnte falsch sein) als Primärschlüssel und wird daher erlauben Sie es nicht, es zu aktualisieren.

Verwandte Themen