Что оператор Linq to Entities говорит мне, существует ли конкретный дочерний объект? - PullRequest
0 голосов
/ 11 августа 2011

Вот оператор foreach, который я хотел бы выразить в Linq to Entities.Он просматривает дочерние объекты (вложения) родительского объекта (currentFactSheet), чтобы увидеть, существует ли вложение с конкретным FileName. Как можно сжать этот процедурный код в операторе Linq to Entites?

FactSheet currentFactSheet = mainWindow.GetCurrentFactSheet();

bool attachmentExists = false;
foreach (var thisAttachment in currentFactSheet.AttachmentsNav)
{
    if (thisAttachment.FileName == nameOfAttachedFile)
    {
        attachmentExists = true;
    }
}

Это частичное изображение, показывающее FactSheet (слева) и сущность Attachment, связанные через свойство навигации с именем AttachmentsNav:

enter image description here

Я хочу сделать запрос к объектам памяти, чтобы избежать обращения к базе данных. Я нашел примеров, подобных этому поиск только на родительском уровне.Я сделал много попыток, но они никогда не вызывают intellisense с именами полей на моем дочернем объекте (в частности Attachment.FileName).

Заранее спасибо.

1 Ответ

2 голосов
/ 11 августа 2011

Попробуйте это:

bool attachmentExists = currentFactSheet.AttachmentsNav.Any(a => a.FileName == nameOfAttachedFile);
...