In question not given any information about which ORM you are using, so i try to show one example to this case in linq to objects in c#, not fully solution for question
String_Agg aggregation function takes a set of values and combines them into a string, using a supplied separator. In LINQ (linq to objects) you may do it by using Group By,
i think this example helps you:
class Program
{
static void Main(string[] args)
{
var emails = new List<EmailData>() {
new EmailData() {Name="Sam", Email="Email1" },
new EmailData() {Name="Sam", Email="Email2" },
new EmailData() {Name="Ted", Email="Email3" },
new EmailData() {Name="Sam", Email="Email4" },
new EmailData() {Name="Sam", Email="Email5" }
};
var grouping = emails.GroupBy(x => x.Name);
foreach (var group in grouping)
{
Console.WriteLine(
$"{group.Key}: {string.Join(", ", group.Select(x => x.Email))}");
}
Console.ReadKey();
}
}
public class EmailData
{
public string Name { get; set; }
public string Email { get; set; }
}
Result:
