2010-12-14 10 views
3

Ich schätze NetTiers für mein nächstes Projekt. Das Problem ist: Jede Tabelle in meinem Schema hat ein Feld AccountId. Bei jeder Anfrage an die DAL möchte ich, dass die AccountId übergeben und als Filter in der Abfrage verwendet wird.Hinweis zur Änderung von NetTiers

Es wäre akzeptabel, wenn eine zusätzliche Überlast generiert würde, die diesen Parameter verwendet.

Ich vermute, dass diese Funktionalität nicht eingebaut ist, kann also jeder irgendeinen Ratschlag geben, wo man mit der Änderung der Vorlagen beginnt, um es hinzuzufügen?

Antwort

3

Das Ändern der NetTiers-Vorlagen ist nicht schwierig, wenn Sie sich in dem Labyrinth der Klassen, die es erzeugt, auskennen, aber es ist normalerweise ziemlich mühsam und sehr fehleranfällig.

Meine erste Annahme ist, dass die Datenbank, die Sie generieren, entweder nur wenige Tabellen hat oder denormalisiert ist - sonst wäre es nicht sinnvoll, in jeder Tabelle eine Spalte AccountId zu haben. Wenn es der spätere ist und die Struktur nicht normalisiert werden kann, glauben Sie, dass es eine ziemlich heftige Änderung wäre, alle gebauten Navigationseigenschaften basierend auf Datenbank-Fremdschlüsseln (einschließlich DeepLoads) zu erhalten, die mit einem zusätzlichen AccountId Filter arbeiten.

Sie erwähnen auch, dass das Hinzufügen von Überladungen, die AccountId enthalten, eine akzeptable Lösung wäre. Allerdings würde dies die bestehenden NetTiers Überlastungen lassen, die zu irgendwelchen DAL Verbraucher keine AccountId Parameter erfordern ...

Wie auch immer, hier ist eine Zusammenfassung einiger der Bereiche müssten Sie prüfen, ändern:

Meine allgemeine Beratung ist, dass während NetTiers und Codesmith Tools der Wahl waren vor DALs ein paar Jahren für den Bau, konnte ich gehen diesen Weg in diesen Tagen nicht empfehlen. Mit der Weiterentwicklung von Microsoft's Entity Framework und Open-Source-NHibernate sollten Sie sich nicht mehr zu sehr in die Daten-Access-Plumbing-Ebene eintauchen müssen (wenn auch nur auf Ebene der Code-Generierung).

+0

Einige gute Tipps, wo man mit nettiers als Ganzes beginnen sollte und nicht speziell meine Frage. Vielen Dank –