代码之家  ›  专栏  ›  技术社区  ›  CodeGrue

Linq2EF:将另一个表中的所有值合并为字符串

  •  0
  • CodeGrue  · 技术社区  · 14 年前

    Physician
    Credentials
    

    from p in Physicians
    select
    {
       p.Name
       p.Credentials (??? <- concatenated list of all credentials ?????)
    }
    

    “我玩过” p.Credentials.Aggregate((a,b) => a.Abrev + ',' + b.Abrev) “没用,但我不确定语法是否正确。

    1 回复  |  直到 14 年前
        1
  •  0
  •   tanathos    14 年前

    嗯。。。。我没有测试过,但你可以试试:

    from p in Physicians
    select
    {
       p.Name,
       String.Join(",", p.Credentials.Select<Credentials, string>(c=>c.Abrev).ToArray())
    }
    

    进入Select,我认为x必须是凭证,而不是凭证。。。

    编辑

    如果需要将对象移动到内存中,请尝试添加ToList(),然后再进行选择

    from p in Physicians.Include("Credentials").ToList()
    select new
    {
        p.Name,
        Credentials = String.Join(",", p.Credentials.Select<Credentials, string>(c=>c.Abrev).ToArray())
    }