Frage

Ich verstehe Subsonic 3.0 ist die neueste und beste, und ich verstehe, Subsonic 3.0 T4-Vorlagen hat.

Aber Subsonic 3.0 ist nicht abwärtskompatibel mit Subsonic 2.2, was bedeutet, mein Projekt mit hunderten von Code-Dateien in der Unterschall 2.2 Abfragesprache geschrieben wird nicht funktionieren in Subsonic 3.0.

Also meine Frage: Gibt es T4-Vorlagen jemand für Subsonic 2.2 hat die generierten Dateien zu ersetzen, es schafft. Meine DB ist riesig und die Menge der Dateien erzeugt wird, ein bisschen verrückt zu bekommen.

Hat jemand diese Fähigkeit gemacht oder hat jemand ein Anpassungs-Tool den Upgrade-Pfad zu helfen?

Danke für das Lesen

War es hilfreich?

Lösung

SubSonic 3 hat eine riesige Recode des Kerns gewesen, einige neue Techniken wie T4 anstelle davon eigene Vorlagen ist und eine Linq-Abfrage-Engine bereitstellt.

Aber die meisten der guten alten Funktionen wie die Abfrage-Tool, sind noch verfügbar.

Wenn Sie habe dies:

var p = new Product();
p.ProductName = "new product";
p.Save();

oder das

var p = DB.Select()
         .From<Product>()
         .Where(Product.ProductCode).IsEqualTo("1234")
         .ExecuteSingle<Product>();

das wird noch Arbeit mit Subsonic3

Wenn Sie mutig genug, um mein Vorschlag für einen Upgrade-Pfad sind wäre dies:

  • Stellen Sie sicher, dass Ihre DAL uses "generatenullableproperties = true"
  • Wenn es nicht neu erstellen und beheben möglich Compiler / Laufzeit Ausnahmen:

    if (p.QuantityHasValue) p.Total = p.Quantity * p.Price;
    // changes to
    if (p.Quantity.HasValue) p.Total = p.Quantity * p.Price;
    
  • Ändern Sie den Namespace von Ihnen erstellte Datei von Your.Namespace.DAL zu Your.Namespace.LegacyDAL

  • Erstellen Sie die DAL mit den Active Vorlagen in Ihrem alten Namespace
  • Wenn Sie verwenden InlineQuery, die Klassennamen zu Coding geändert
  • fix alle Compiler-Fehler (vielleicht die erzeugten Eigenschaftsnamen / Typen unterscheiden sich ein wenig)
  • Rewrite-Abfragen bei Bedarf
  • Wenn Sie Unterschall Migrationen verwenden: mit ihnen Stock da kein ebenbürtiger Ersatz in Subsonic3
  • Test, Test, Test !!! bis alles funktioniert
  • nutzen die Subsonic3 Funktionen (wie Linq) nur für neue Aufgaben
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top