我想合并两个表,其中一个表是分数,而另一个表是关于例如文章的信息。
表:
Articles
---------------
article_id
title
date
category
user_id
Articles_Scores
---------------
article_id
user_id
score
我已经写过这个linq查询:
from p in db.Articles.Where(p => p.user_id == 2)
join o in db.Articles_Scores.Where(o => o.user_id == 2) on p.article_id equals o.article_id
group o by o.article_id into result
select new
{
result.Average(m => m.score)
};
如何选择其他文件。为什么我不能在选择中使用p?有人可以告诉我该怎么做以获得以下结果:
article_id title date category score
答案 0 :(得分:1)
from p in db.Articles.Where(p => p.user_id == 2)
select new
{
p.article_id,
p.title,
p.date,
p.category,
AverageScore = db.Articles_Scores
.Where(o => o.user_id == p.user_id && p.article_id == o.article_id)
.Average(m => m.score)
};
答案 1 :(得分:-1)
我建议您加入DBML设计器并使用它:
var query = (from article in articles
where article.article_id == givenId && article.user_id == givenUser
let scores = article.scores.ToList()
from score in scores
select score.value).Sum();