1
  • 有什么方法可以告诉 SubSonic 关系(只有外键?或其他方法)?
  • 如果我有(例如)一个包含相关团队成员的团队对象

    ** 我如何访问和更新团队中的团队成员

    ** 如何更新团队成员?保存团队对象是否会保存团队成员更改

    ** 如何将成员添加到团队中?我是否只是创建一个新成员,将团队 ID 分配给外键并保存?还是有更面向对象的方式(例如team.Add(teamMember))

4

1 回答 1

3

Subsonic 代码生成将读取表中的外键关系并在表类中创建所需的辅助方法。Northwind Product 类与 OrderDetail 类具有 PrimaryKey 关系。Subsonic 生成方法

公共 Northwind.OrderDetailCollection OrderDetails()

将 OrderDetail 行作为 OrderDetailCollection 获取。这是一个 BindingList,您可以根据需要进行更改,并调用 SaveAll() 来保存列表。没有深度保存,因此保存 Product 不会保存相关的 OrderDetail 行。

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

}
于 2009-05-08T06:55:20.493 回答