Frage

Laut diesem Artikel: http://subsonicproject.com/docs/3.0_Migrations

Bottom line: if you're a developer that is concerned about database design,
migrations might not be for you.

Ok, das ist in Ordnung, ich kann die Datenbank einfach als ein persistenten Daten-Repository behandeln, die keine Geschäftslogik enthalten. Mit anderen Worten, eine glorifizierte Textdatei.

Was ich weiß nicht, wie zu tun ist, zusammen zwei Objekte beziehen. Nehmen Sie zum Beispiel diese beiden Klassen:

public class Disaster
{
    public int DisasterId { get; set; }
    public string Name { get; set; }
    public DateTime? Date { get; set; }
    public IList<Address> Addresses { get; set; }
}

public class Address
{
    public int AddressId { get; set; }
    public string WholeAddressHereForSakeOfBrevity { get; set; }
}

Disaster enthält eine IList mehrere Addresses, die von der Katastrophe betroffen war. Als ich SimpleRepository verwenden diese in die Datenbank mit SimpleRepositoryOptions.RunMigrations hinzuzufügen, erzeugt er die Tabellen mit allen Spalten, aber keine Fremdschlüsselspalten wie erwartet.

Wie würde ich diese beiden zusammen beziehen, so dass, wenn ich Disaster.Addresses nennen, habe ich eine Liste aller betroffenen Addresses bekommen? Ist das möglich oder muss ich Active verwenden, anstatt, und erstellen Sie die Datenbanktabellen zuerst? Oder muss ich für die Katastrophe der ID in Address in einer Spalte hinzu? Wenn ja, wie funktioniert diese Methode Arbeit für viele-zu-viele-Beziehungen?

War es hilfreich?

Lösung

Es ist möglich - Sie tun es nur von Hand ist alles. In der Unterkunft um Disaster namens „Adressen“ und machen es zu einem IList <> (oder Sie können es IQueryable machen, wenn Sie es zu Lazy Load wollen). Wenn Sie Ihre Disaster abrufen, nur sicher sein, Ihre Adressen abgerufen werden.

Es ist eine Art „Handbuch“ - aber das ist die Idee. Ich arbeite an Verbesserungen dies, dass ich in einer späteren Version schieben bin die Hoffnung.

Und bevor Sie fragen, warum ich tat es nicht in erster Linie :) es ist, weil ich nicht weiß, ob ich eine viele zu viele oder 1-viele auf der Grundlage der Eltern / Kind-Beziehung verwendet werden soll. In Ihrem Beispiel ich würde vermuten, dass es wahrscheinlich 1 bis viele, aber man bedenkt, was ich weiß, über Adressen und Katastrophen (vor allem in Florida) ist es wahrscheinlich zu viele viele sein sollte.

Bottom Line - wie würden SubSonic das wissen? Wir konnten beide Objekte für „Bidirektionalität“ introspect, was bedeutet, wenn Adress viele Katastrophen hat, als es viele viele ist (was offensichtlich ist.) - aber das ist dann nicht glücklich Codierung, wenn Sie wie DDD

Ich bin Neigung zu dieser Regel mit irgendeiner Art von Überschreibung, die das Problem zwingen würde. Ihre Gedanken dazu sind willkommen:)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top