ADO.NET Entity Data Model Erlaubt Rundfremdschlüssel Refs

stimmen
1

Ich bin mit dem neuen ADO.NET Entity Data Model auf einer einfachen Datenbank. Ich habe eine Tabelle / Entität mit einem Primärschlüssel (PageID) und einen ParentID Fremdschlüssel, dass Verweise auf sich selbst zurück auf PageID für eine Eltern / Kind „0..1 zu viele“ Beziehung. Auf einer ASP.Net Seite, verwende ich ein Formview mit einem asp: Dynamic dies als Kontrolle zum Ausdruck bringen. Das Teil funktioniert gut, außer für ein entscheidendes Detail: Wenn die Seite rendert, die Liste der möglichen Eltern schließt sich, und ein Element Einstellung ein Elternteil selbst haben keine Fehler verursacht und speichert sie in der Datenbank. Offensichtlich ein hierarchisches Objekt soll nicht ein Elternteil von sich selbst haben, so wie kann ich dieses Verhalten einschränken?

Soweit ich sehen kann, meine Optionen sind:

  • Ändern irgendwie die ForeignKey _edit.ascx in dem Dynamic FieldTemplates. Dies ist problematisch , da kann ich nicht sehen , wie einen Verweis auf das aktuelle Unternehmen zu bekommen Primärschlüssel aus den möglich zu entfernen Fremdschlüsseln Entscheidungen. Darüber hinaus wird dieser Schlauch möglicherweise alle nicht-hierarchische fkey Refs Verwendungen , wo die Schlüssel zufällig kollidieren.

  • Tun Sie etwas PreRender Schmu auf der Seite zu versuchen, die ListItem aus der gerenderten Dropdownlist zu entfernen. Dies scheint nicht wie der richtige Weg, wie es sie nur für die betreffende Seite fixiert. EDIT: Dies ist, wie ich es bin derzeit zu lösen.

  • Irgendeine Art von insert / update-Trigger zu zwingen, die ParentID auf null, wenn es sich übereinstimmt. Das ist nicht gut, weil es leise aus der Sicht des Benutzers fehlschlägt.

Hat jemand da draußen einen besseren Weg? Auch lassen Sie mich wissen, wenn ich mehr Detail zur Verfügung stellen muß.

-Kelly

Veröffentlicht am 09/12/2008 um 20:32
quelle vom benutzer
In anderen Sprachen...                            


1 antworten

stimmen
1

Ich beenden die Hierarchie auf einen Montagetisch zu bewegen, weil ich mehr zu speichern hatte als nur Eltern / Kind-Beziehungen. Dabei bedeutete auch, ich könnte die Dynamic Kontrolle und verwenden Sie einen benutzer intuitiven TreeView mit Drag-n-Drop-Server-Side-Event (ComponentArt) auszugeben. Aufgrund der Art der Kontrolle, konnte kein Element sei es eigen Eltern so das Problem strittig war. Wow, 7 Monate sind eine lange Zeit in meiner ersten Erfahrung mit Entity Framework :)

Beantwortet am 17/07/2009 um 22:06
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more