我需要使用linq语句创建字符串连接。我有以下数据:
栏目
Section_User
用户
我需要以下结果:
SectionId:1,用户:User1,User2
我创建了以下Linq语句:
var query2 = from section in this.context.Sections
from users in section.Users
group section by section2.Id into groupedSection
select new {
SectionId = groupedSection.Key,
Users = string.Join(",", users.Select (x => x.Name)) // compile error, but I don't know how I write the statement correctly
};
有人能告诉我,如何使用linq语句在数据库端(不是内存中)创建字符串连接。
谢谢!
答案 0 :(得分:1)
根据评论中@Alexei的链接,您的行应该看起来像
var query2 = from section in this.context.Sections
from users in section.Users
group section by section2.Id into groupedSection
select new {
SectionId = groupedSection.Key,
Users = string.Join(",", (from u in users select s.Name).ToArray())
};
但是,如果由于LINQ to Entities错误而无效,并且您愿意将Users
保留为IEnumerable<string>
,则只需使用:
var query2 = from section in this.context.Sections
from users in section.Users
group section by section2.Id into groupedSection
select new {
SectionId = groupedSection.Key,
Users = (from u in users select s.Name)
};
稍后在需要时,您可以加入字符串,或使用循环显示名称。