table1(PK->ID(int),Name(nvarchar),amount(int),calorie(int))
table2(pk->ID(int),name(nvarchar),totalcalorie(int))
+-------+--------+----------+--------------+
| int | name | amount | calorie |
+-------+--------+----------+--------------+
| 1 | a | 10 | 20 |
| 2 | b | 5 | 20 |
| 2 | b | 10 | 10 |
| 1 | a | 10 | 10 |
| 2 | b | 15 | 35 |
| 3 | c | 20 | 15 |
+-------+--------+----------+--------------+
像这样的东西是我的第一个表现在想象table2的同一个表
这次只有:
1-------a--------30
2-------b--------65
3-------c--------15
这有可能吗?到目前为止我所写的并且不起作用的是:
DataClasses1DataContext db = new DataClasses1DataContext();
var q = from row in db.table1
group row by new { row.name }
into grp
select new
{
grp.Key.name,
sum = grp.Sum(row => row.calorie)
};
db.SubmitChanges();
答案 0 :(得分:0)
现在您只是选择数据。您需要插入块,如下所示:
var q = (from row in db.table1
group row by new { row.id, row.name } into grp
select new
{
grp.Key.id,
grp.Key.name,
sum = grp.Sum(s => s.calorie)
}).ToList();
foreach(var item in q)
{
var e = new db.table2Entity
{
id = item.id,
name = item.name,
totalcalorie = item.sum
};
db.Table2.AddObject(e);
}
db.SaveChanges();
答案 1 :(得分:0)
我认为你在db.SubmitChanges()wright之后没有看到你的数据库结果? Linq查询应该可以正常工作但是提交没有看到更改,因为table2没有变化。您只需选择数据并将其从table1分组。请调试并查看q变量中的内容。