【发布时间】:2009-03-15 00:43:46
【问题描述】:
我有一个 linq 查询,它返回一个简短的订单摘要 - 绑定到数据控件的产品描述和产品价格。我想在显示税收信息的同一个控件中添加要绑定的行。产品描述栏会简单地说“税”,而产品价格栏会给出税额。
我曾经检索这些结果的 DataTable 并简单地执行 NewRow(),然后将我的控件的数据源设置为 DataTable。我正在寻找使用 LINQ to SQL 时的等效技术。谢谢。
【问题讨论】:
标签: linq-to-sql
我有一个 linq 查询,它返回一个简短的订单摘要 - 绑定到数据控件的产品描述和产品价格。我想在显示税收信息的同一个控件中添加要绑定的行。产品描述栏会简单地说“税”,而产品价格栏会给出税额。
我曾经检索这些结果的 DataTable 并简单地执行 NewRow(),然后将我的控件的数据源设置为 DataTable。我正在寻找使用 LINQ to SQL 时的等效技术。谢谢。
【问题讨论】:
标签: linq-to-sql
orderSummary.Union(taxRow)
【讨论】:
为了便于在 LINQ 查询结果中添加另一个“行”,您可能需要考虑创建一个类来保存查询结果。然后您可以将结果转换为列表,计算税款,并将税款附加为类的对象。
public class OrderSummary
{
public string Description { get; set; }
public decimal Amount { get; set; }
}
var taxRate = ...
var orderSummary = db.Orders.Where( o => o.ID == id )
.Select( o => new OrderSummary
{
Description = o.Product
.Details
.Description,
Amount = o.Qty * o.Product.Price
})
.ToList();
var tax = new OrderSummary
{
Description = "Tax",
Amount = orderSummary.Sum( o => o.Amount * taxRate );
};
orderSummary.Add( tax );
然后您可以使用 Description 作为键和 Amount 作为值将列表绑定到您的控件。
【讨论】: