C# LINQ中两个表的列之和
我在MS SQL中有两个相关的表C# LINQ中两个表的列之和,c#,sql-server,wpf,C#,Sql Server,Wpf,我在MS SQL中有两个相关的表 Example... Table A – Room RoomId RoomCost Table B – RoomItem RoomItemId ItemName ItemCost RoomId 我需要帮助编写LINQ代码,该代码将添加RoomCost,然后对ItemCost求和(如果它们具有相同的RoomId),并将结果发布到WPF文本框中。 到目前为止我已经试过了 DataclassesDataContext dc= new DataclassesData
Example...
Table A – Room
RoomId
RoomCost
Table B – RoomItem
RoomItemId
ItemName
ItemCost
RoomId
我需要帮助编写LINQ代码,该代码将添加RoomCost,然后对ItemCost求和(如果它们具有相同的RoomId),并将结果发布到WPF文本框中。
到目前为止我已经试过了
DataclassesDataContext dc= new DataclassesDataContext();
var RoomAmount = (from dbo in dc.Room select dbo.RoomCost).Single();
var ItemAmount = (from itm in dc.RoomItem select itm.ItemCost).Single();
decimal RmAmount = Convert.ToDecimal(RoomAmount);
decimal ItmAmount = Convert.ToDecimal(ItemAmount);
decimal TAmount=RmAmount+ItmAmout;
txtTotalAmount.Text=TAmount
我是C#的初学者,请帮忙。如果我还不够清楚,就问吧。谢谢使用Sum()怎么样
假设Room.RoomCost为十进制,RoomItem.ItemCost也为十进制,并且myRoomId是要汇总的房间id:
var roomAmount = dc.Room.Single(r => r.RoomId == myRoomId).RoomCost;
var itemAmount = dc.RoomItem.Where(i => i.RoomId == myRoomId).Sum(r => r.ItemCost);
txtTotalAmount.Text= roomAmount + itemAmount ;
假设房间和房间项目的关联正确
var foo = from room in dc.Room
select new { room , TotalCost = room.RoomCost + room.RoomItems.Sum(item => item.ItemCost) };
var bar = foo.Single(room => room.RoomId == myRoomId);
您可以通过linq内部联接和分组方式来实现这一点 参见这里的示例:和 要添加两列,请参见示例 因此,从这个链接,您的查询如下
var total = from room in dc.Room
join item in dc.RoomItem on room.RoomID equals item.RoomID
group item by room.RoomID into g
select new {
RoomID = room.RoomID,
RoomCost = (room.RoomCost + g.Sum(t => t.ItemCost))
};
请编辑您的帖子,而不是添加评论,并适当设置其格式。如果你点击“编辑”,右上角会有一个问号,这将帮助你以可读的方式提出你的问题。谢谢Jon。更正。