我有一个linq查询,它返回一个简短的订单摘要 - 产品描述和产品价格绑定到数据控件。我想在显示税务信息的同一控件中添加要绑定的行。产品说明列只会说“税”,产品价格列会给出税额。
我曾经检索过这些结果的DataTable,只需执行一个NewRow(),然后将我的控件的数据源设置为DataTable。我正在寻找使用LINQ to SQL时的等效技术。感谢。
答案 0 :(得分:3)
orderSummary.Union(taxRow)
答案 1 :(得分:1)
为了便于在LINQ查询的结果中添加另一个“行”,您可能需要考虑创建一个类来保存查询结果。然后,您可以将结果转换为List,计算税收,并将税收作为该类的对象附加。
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作为值将列表绑定到您的控件。