たとえば、http://starcounter.io/tutorials/1-introduction-to-part-1/ InvoiceDemo のサンプル アプリについて考えてみます。
次のデータベース オブジェクトが宣言されています
using Starcounter;
[Database]
public class Invoice {
public int InvoiceNo;
public string Name;
public decimal Total {
get {
return Db.SQL<decimal>(@"SELECT sum(r.Total)
FROM InvoiceRow r
WHERE r.Invoice = ?",
this).First;
}
}
public QueryResultRows<InvoiceRow> Items {
get {
return Db.SQL<InvoiceRow>(@"SELECT r
FROM InvoiceRow r
WHERE r.Invoice = ?",
this);
}
}
public Invoice() {
new InvoiceRow() {
Invoice = this
};
}
}
[Database]
public class InvoiceRow {
public Invoice Invoice;
public string Description;
public int Quantity;
public decimal Price;
public decimal Total {
get {
return Quantity * Price;
}
}
public InvoiceRow() {
Quantity = 1;
}
}
追加された請求書行の順序を確認したい場合は、標準の SQL DB で自動インクリメント ID を使用します。Starcounter でのベスト プラクティスは何ですか?