Frage

  • Was sind die Möglichkeiten SubSonic über die Beziehung zu erzählen (nur Fremdschlüssel? Oder zu anderen Methoden)?
  • Wenn ich (zum Beispiel) ein Team Objekt mit nahen stehenden Teammitgliedern

    ** Wie kann ich zugreifen und aktualisieren Sie die Teammitglieder aus dem Team

    **, wie aktualisiere ich die Teammitglieder? Ist das Speichern der Team-Objekt speichert die Teammitglieder Änderungen

    ** Wie kann ich Mitglieder zum Team hinzu? Erstelle ich gerade ein neues Mitglied, der Team-ID an den Fremdschlüssel zuweisen und speichern? Oder gibt es eine objektorientierte Art und Weise (z team.Add (Teammitglied))

War es hilfreich?

Lösung

Subsonic Code-Generierung wird die Fremdschlüsselbeziehungen in den Tabellen lesen und die erforderlichen Hilfsmethoden in den Tabellenklassen erstellen. Die Nordwind Produktklasse hat eine PrimaryKey Beziehung zu der Orderdetail-Klasse. Unterschall- erzeugt das Verfahren

public Northwind.OrderDetailCollection Orderdetails ()

die Orderdetail Reihen als OrderDetailCollection zu bekommen. Dies ist ein Binding, die Sie je nach Bedarf ändern und rufen SaveAll (), um die Liste zu speichern. Es gibt keine tiefe Einsparung, so dass das Produkt Speicher nicht verwandte Zeilen Orderdetail speichern.

[Test]
public void Demo_Product_OrderDetails()
{
    Product product = new Product(3); // Read an existing row.
    OrderDetailCollection orderDetails = product.OrderDetails();
    Assert.IsTrue(orderDetails.Count == 12);
    foreach(OrderDetail orderDetail in orderDetails)
    {
        orderDetail.Discount -= 0; // Do something meaningful.
    }
    OrderDetail newDetail = new OrderDetail();
    newDetail.ProductID = 3;
    newDetail.OrderID = 10248;
    newDetail.UnitPrice = 7.00m;
    newDetail.Discount = 0.10f;
    newDetail.Quantity = 12;
    orderDetails.Add(newDetail);
    orderDetails.SaveAll();

    orderDetails = product.OrderDetails();
    Assert.IsTrue(orderDetails.Count == 13);

    OrderDetail.Destroy(newDetail.OrderID);

    orderDetails = product.OrderDetails();
    Assert.IsTrue(orderDetails.Count == 12);

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