Я пытаюсь вернуть список объектов, содержащий другой список объектов, в качестве databmember, используя linq. Я пробовал показанные примеры, но при каждой попытке я все время получаю различные ошибки. Один из них выглядит следующим образом: LINQ to Entities не распознает метод 'System.Collections.Generic.List 1[SunGard.Tools.Notifications.LinkVariable] ToList[LinkVariable](System.Collections.Generic.IEnumerable
1 [SunGard.Tools.Notifications.LinkVariable])', и этот метод не может быть переведен в выражение хранилища.Как создать объект списка, который содержит список другого типа объекта, используя из запроса с помощью linq и C#
У меня есть объект (AlertMessageReturn), который содержит некоторые строковые данные, а также список другого объекта (списка). У меня есть класс, который определяет LinkVarible и таблицу, содержащую значения. Мой запрос выглядит так:
AlertMessagesQuery = from alertMessage in this.context.AlertMessages
where alertMessage.UserId=UserId
select new AlertMessageReturn()
{ PAM_ShortMessage = alertMessage.PAM_ShortMessage,
PAM_LongMessage = alertMessage.PAM_LongMessage,
PAM_LongMessageRemote = alertMessage.PAM_LongMessageRemote,
LinkVariables = (from linkVariable in this.context.AlertMessageLinks
from user in this.context.AlertMessageUsers
where user.PAMU_PAM_ID == linkVariable.PAML_PAM_ID && user.PAMU_UserId == UserId
select new LinkVariable()
{
Name = linkVariable.PAML_SessionVariableName,
Value = linkVariable.PAML_SessionVariableValue
})
};
Ошибка связана с типом, возвращаемым для linkvariables. Пожалуйста, помогите.
Я изменил код следующим образом:
LinkDataQuery = from linkData in this.context.AlertMessageLinks
from user1 in this.context.AlertMessageUsers
where user1.PAMU_PAM_ID == linkData.PAML_PAM_ID && user1.PAMU_UserId == UserId
select new LinkData
{
Name = linkData.PAML_SessionVariableName,
Value = linkData.PAML_SessionVariableValue
};
var links = LinkDataQuery.ToList();
AlertMessagesQuery = from alertMessage in this.context.AlertMessages
where alertMessage.UserId=UserId
select new AlertMessageReturn()
{ PAM_ShortMessage = alertMessage.PAM_ShortMessage,
PAM_LongMessage = alertMessage.PAM_LongMessage,
PAM_LongMessageRemote = alertMessage.PAM_LongMessageRemote,
LinkVariables = links
};
var AlertMessages = AlertMessagesQuery.ToList(); // this is where the error point to
if (AlertMessages.Any())
{
return AlertMessages;
}
Ошибка теперь я получаю: System.NotSupportedException: Невозможно создать постоянное значение типа «SunGard.Tools.Notifications.LinkData». В этом контексте поддерживаются только примитивные типы (такие как Int32, String и Guid).
Я пробовал разделить запросы: – user1453999
Могу ли я увидеть код в его нынешнем виде? – bluevector
Я редактировал свой предыдущий код с тем, как он стоит сейчас. – user1453999