В моей базе данных / модели Entity Framework есть структура «многие ко многим».
CompanyNotice (M-M) CompanyNoticesLocations (M-M) Расположение
![enter image description here](https://i.stack.imgur.com/UG4Qo.png)
Я пытаюсь объединить местоположения для одного CompanyNotice и вернуть разделенное запятыми LocationName для расположений. Я попытался использовать следующий код для агрегирования LocationName:
if (!IsPostBack)
{
using (var context = new ALEntities())
{
var query = from c in context.CompanyNotices.Include("Locations")
select new
{
c.CompanyNoticeHeading,
c.CompanyNoticeText,
c.IsHR,
locations = (from l in c.Locations select l.LocationName).Aggregate((current, next) => string.Format("{0}, {1}", current, next))
};
ASPxGridView1.DataSource = query;
ASPxGridView1.DataBind();
}
}
Я получаю следующую ошибку при попытке использовать приведенный выше код:
LINQ to Entities не распознает метод 'System.String
Агрегировать метод [String] (System.Collections.Generic.IEnumerable 1[System.String],
System.Func
3 [System.String, System.String, System.String]) 'и
этот метод нельзя перевести в выражение магазина.
Когда я пытаюсь:
if (!IsPostBack)
{
using (var context = new ALEntities())
{
var query = from c in context.CompanyNotices.Include("Locations")
select new
{
c.CompanyNoticeHeading,
c.CompanyNoticeText,
c.IsHR,
locations = (from l in c.Locations select l.LocationName)
};
ASPxGridView1.DataSource = query;
ASPxGridView1.DataBind();
}
}
Данные в столбце местоположений в виде сетки отображаются как:
System.Collections.Generic.List`1 [System.String]
Кто-нибудь знает, как объединить LocationName, чтобы он отображался для одной CompanyNotice?
Заранее спасибо.