метод расширения ForEach в списке - как получить объект? - PullRequest
0 голосов
/ 06 января 2011

Итак, у меня есть что-то вроде этого:

    List<Entity2> list = new List<Entity2>();
    Action<Entity2> adder= (z) =>retVal.Add(z);
    Func<Entity1, Entity2> getter = (x) =>repository2.GetSingle(f=>f.ID == x.Entity2ID);

    repository1.Get(q=>q.UserName).Foreach(adder(getter(???))); //Need to pass Entity1 to the delegate in here

Entity1 Имеет поле ссылки, называемое Entity2ID, но по определенным причинам в linq не установлено явных отношений.

Так что идея состоит в том, чтобы найти entity2 для каждого entity1, используя делегат-получатель, поскольку они не имеют явной связи, и просто добавить соответствующий объект entity2 в список, используя расширение ForEach для коллекции entity1.

У меня вопрос, как мне взять объект, над которым я выполняю ForEach?

1 Ответ

2 голосов
/ 06 января 2011
repository1.Get(q=>q.UserName).Foreach(x => adder(getter(x)));

Кроме того, вы должны быть в состоянии сделать это:

    retval.AddRange(repository1.Get(q=>q.UserName)
                               .Select(x => repository2
                               .GetSingle(f=>f.ID == x.Entity2ID)));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...