Подтвердить что ты не робот

Использование Linq для возврата строки, разделенной запятой

У меня есть класс в моем приложении

public class ProductInfo
{
  public int ProductId {get;set;}
  public int ProductType{get;set;}
}

Я хочу написать запрос linq, который может вернуть мне список ProductIds в формате, разделенном запятыми, где ProductType равен определенному числу?

Я попытался использовать string.join с моей инструкцией Linq, но он, похоже, не работал.

4b9b3361

Ответ 1

var s = string.Join(",", products.Where(p => p.ProductType == someType)
                                 .Select(p => p.ProductId.ToString()));

Ответ 2

Как я могу устранить ошибку ниже?

var query = из a в db.KRP_CustomerSubject где (WorkSubjectId> -1? a.WorkSubjectId == WorkSubjectId: true)

                    select new
                     {
                         a.Id,
                         WorkSubjectName = string.Join(",", 
                         a.KRP_WorkSubject.Name.ToString()),
                         a.KRP_Customer.CmpName,
                         NameFamily = a.KRP_Customer.FName + " " + 
                         a.KRP_Customer.LName,
                         a.KRP_Customer.NoSabt,
                         a.KRP_Customer.Sandica,
                         a.KRP_Customer.Tell,
                         a.KRP_Customer.Mobile,
                         a.KRP_Customer.Address,
                         a.CustomerId

                     };

        gvCustomerSubject.DataSource = query.ToList();
        gvCustomerSubject.DataBind();

Я получаю сообщение об ошибке: "LINQ to Entities не распознает метод метода System.String Join (System.String, System.String []) ', и этот метод нельзя преобразовать в выражение хранилища".