首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Linq to SQL分组子关系?

Linq to SQL分组子关系?
EN

Stack Overflow用户
提问于 2018-08-29 01:29:09
回答 2查看 0关注 0票数 0

我正在尝试运行LINQ to SQL查询,该查询在搜索引擎样式列表的网格视图中返回结果。

在下面的简化示例中,是否可以使用逗号分隔的列表来填充集合,该列表包含父查询(NAMESOFCHILDREN)在单个查询中的所有子项?

代码语言:javascript
复制
var family = from p in db.Parents
             where p.ParentId == Convert.ToInt32(Request.QueryString["parentId"])
             join pcl in db.ParentChildLookup on p.ParentId equals pcl.ParentId
             join c in db.Children on pcl.ChildId equals c.ChildId
             select new
             {
                 Family = "Name: " + p.ParentName + "<br />" + 
                          "Children: " + NAMESOFCHILDREN? + "<br />"
             };

提前致谢。

EN

回答 2

Stack Overflow用户

发布于 2018-08-29 10:29:09

你的加入会搞砸你的基数!你没有父母的名单!

这是一些未经测试的自由手代码。在Linq设计器中添加关系可为您提供关系属性。String.Join将列表放在一起。

我添加了两个可选的方法调用。

在哪里......任何人 都会将父母过滤给那些有孩子的父母。我不确定string.Join在空数组上的行为。

ToList会将Parent压入内存,进一步的数据库调用将访问子节点。如果获得运行时字符串,则可能需要这样做.SQL转换器异常不支持。这个异常意味着LINQ试图将方法调用转换为SQL Server可以理解的东西 - 并且失败了。

代码语言:javascript
复制
int parentID = Convert.ToInt32(Request.QueryString["parentId"]);

List<string> result =
  db.Parents
  .Where(p => p.ParentId == parentID)
  //.Where(p => p.ParentChildLookup.Children.Any())
  //.ToList()
  .Select(p => 
    "Name: " + p.ParentName + "<br />" + 
    "Children: " + String.Join(", ", p.ParentChildLookup.Children.Select(c => c.Name).ToArray() + "<br />"
)).ToList();

另请注意:通常,您不希望混合数据和标记,直到数据被正确转义以进行标记。

票数 0
EN

Stack Overflow用户

发布于 2018-08-29 11:11:19

你可以尝试如下:

代码语言:javascript
复制
var family = from p in db.Parents            
     where p.ParentId == Convert.ToInt32(Request.QueryString["parentId"])             
    join pcl in db.ParentChildLookup on p.ParentId equals pcl.ParentId             
     select new             {                 
        Family = "Name: " + p.ParentName + "<br />" + string.Join(",",(from c in db.Children where c.ChildId equals pcl.ChildId  select c.ChildId.ToString()).ToArray());
    };
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100000683

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档