2009-05-08 8 views
1
  • Quelles sont les façons de dire à SubSonic sur la relation (uniquement les clés étrangères ou d'autres méthodes)?
  • Si je (par exemple) un objet d'équipe avec les membres de l'équipe connexesComment utiliser les relations «un à plusieurs» dans SubSonic

    ** Comment accéder et mettre à jour les membres de l'équipe de l'équipe

    ** Comment puis-je mettre à jour les membres de l'équipe? Est-ce que la sauvegarde de l'objet équipe permet d'enregistrer les changements de membres de l'équipe?

    ** Comment ajouter des membres à l'équipe? Est-ce que je crée un nouveau membre, assigne l'identifiant de l'équipe à la clé étrangère et économise? Ou est-il plus orienté objet chemin (par exemple team.Add (d'équipe))

Répondre

3

génération de code Subsonic lit les relations de clé étrangère dans les tables et créer les méthodes d'assistance requises dans les classes de table. La classe Northwind Product a une relation PrimaryKey avec la classe OrderDetail. Subsonique génère la méthode

OrderDetails de Northwind.OrderDetailCollection publique()

pour obtenir les lignes OrderDetail comme un OrderDetailCollection. C'est une BindingList que vous pouvez changer si nécessaire, et appelez SaveAll() pour sauvegarder la liste. Il n'y a pas d'économie importante, donc l'enregistrement du produit ne sauvegardera pas les lignes OrderDetail correspondantes.

[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); 

} 
+2

Les relations de clés étrangères sont-elles le seul moyen de le faire dans SubSonic? Des conventions de nommage? – BuddyJoe

Questions connexes