Ich habe eine Entität, nennen wir sie CommonEntity
, die einen Primärschlüssel hat, der in vielen anderen Entitäten als Fremdschlüssel verwendet wird. Wenn die Anwendung entwickelt wird, werden diese Links weiter wachsen.
Ich würde gerne sehen, ob CommonEntity
sicher gelöscht werden kann (d. h. es wird nicht von anderen Entitäten verwendet).
Ich weiß, dass ich es tun kann
%Vor%Aber ich hoffe auf eine Möglichkeit, alle Beziehungen automatisch zu überprüfen, da ich nicht die Idee liebe, diesen Code jedes Mal, wenn wir eine neue Beziehung hinzufügen, manuell ändern zu müssen. Vielleicht ist etwas in EF4 +, das mir nicht bekannt ist?
Ich dachte, es wäre möglich, einen Transaktionsbereich zu verwenden, um das Objekt einfach zu löschen und es zurückzuspielen, wenn es fehlschlägt, aber ich war mir nicht sicher, ob es bei diesem Ansatz irgendwelche negativen Nebenwirkungen gab.
Gibt es einen besseren Ansatz?
BEARBEITEN: Sieht so aus, als hätte VS2012 EF5 verwendet, obwohl das Projekt .Net 4 ist. Daher hat es das Modell mit POCOs erstellt, obwohl es aus einer DB generiert wurde.
Sie können Reflection dafür verwenden (wenn Sie nicht "Fail Delete On SQL" verwenden möchten) Ich schreibe das, weil ich Entity NICHT LÖSCHEN will, will nur wissen, ob es sich auf irgendwas bezieht oder nicht!
%Vor%HINWEIS: Der Kontext darf nicht disloziert sein und der Proxy muss aktiviert sein UND WISSEN, DASS ES ALLE ZUGEHÖRIGEN AUFZEICHNUNGEN ZUR SPEICHERUNG ERHALTEN WIRD (ES IST ZU SCHWER)
Finden Sie zuerst die Entität, die Sie löschen möchten, indem Sie in EF suchen und die Entität an die Funktion übergeben. Wenn die Funktion wahr zurückgibt, bedeutet das, dass sie nicht gelöscht werden kann und fremde Daten vorhanden sind Kind Datensätze und kann gelöscht werden ..
%Vor%Tags und Links asp.net-mvc .net c# entity-framework entity-framework-4