Byu*_*eng 13 linq linq-to-entities group-by
我有4个表:帖子,类别,关系和元
A category可以包含多个posts,并且它们之间的关系存储在Relation表中.然后,帖子可以有许多存储在Meta表格中的额外信息.我想列出所有带有类别和额外信息的帖子,然后按照帖子的ID对它们进行分组.
我有以下查询
select p.ID, p.Title, t.Name, m.Key, m.Value from Post p
left join Relation r on p.ID = r.Child
left join Category c on r.Parent = c.ID
left join Meta m on p.ID = m.Object
where m.Type = 'news'
order by p.ID
Run Code Online (Sandbox Code Playgroud)
以及这些样本数据:
Post
ID Title
1 A
Category
ID Name
1 Tips
2 Tricks
Meta
ID Object Key Value
1 1 Key1 Value 1
2 1 Key2 Value 2
Relation
ID Child Parent
1 1 1
2 1 2
Run Code Online (Sandbox Code Playgroud)
然后结果将是
PostID Title Category Key Value
1 A Tips Key1 Value1
1 A Tips Key2 Value2
1 A Tricks Key1 Value1
1 A Tricks Key2 Value2
Run Code Online (Sandbox Code Playgroud)
我期待结果
PostID Title Categories Meta
1 A Tips, Tricks Key1=Value1, Key2=Value2
Run Code Online (Sandbox Code Playgroud)
我想知道我们是否可以将查询从SQL转换为LINQ to EntitiesEF v4,结果存储在这样的类中
class Result
{
long ID,
string Title,
List<string> Categories,
Dictionary<string, string> Meta
}
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激.
您期望从查询中得到的最终结果是什么我个人更喜欢这样编写查询
var q = from r in Relation
join p in Post on r.Child equals p.ID
join t in Term on r.Parent equals t.ID
let x = new { p.ID, p.Title, t.Name }
group x by x.ID into g
select g;
Run Code Online (Sandbox Code Playgroud)
这样我认为(不确定)生成的sql会更简单
| 归档时间: |
|
| 查看次数: |
991 次 |
| 最近记录: |