LINQ, передать рез. запроса

Березовский
Дата: 12.05.2010 19:24:53
Привет,
не могу найти как передать результат Linq запроса в метод,
и.... что - какой тип пиcать на принимающей стороне?

        var q = from p in db.MyTable
                select p;
// Тут же могу пробежаться по одному из полей как то так
         foreach(var recodrd  in q )
          {
             string nm=recodrd.MyField;
          }
//и вызвать  
SomeMehod(q);


SomeMehod(чё_тута_написать Paramter)
{

}

Хочу пердать весь q в другой метод и там с ним работать
но что то не пойму какой тип параметра на приеме писать...
Подсказка пишет что то про iQueriable, но методом тыка что то не нашел.
Березовский
Дата: 12.05.2010 19:33:58
Дополню чуть, я хочу q в этот SomeMetod передать
и там по нему аналогично пробежаться
 foreach( )
          {
           }
Starlex
Дата: 12.05.2010 21:35:27
Березовский

 

SomeMehod(чё_тута_написать Paramter)
{

}


Method(IEnumerable<Класс recodrd> q)
{
}

Напрямую передать var вроде не получится.
linqhelp
Дата: 12.05.2010 23:24:45
После того, как ты пробежишься по одному из полей, необходимо использовать IEnumerable<Класс>, в другом случае можно IQueryable<Класс>
Березовский
Дата: 13.05.2010 07:29:10
Спасибо, смысл понял.. но решил не заморачиваться с
передачей результата запроса, вызову так

var q = from p in db.MyTable
                select p;

         foreach(var recodrd  in q )
          {
          // дерну N раз с передачей значения
            SomeClass(recodrd.MyField);
          }
SanSYS
Дата: 14.05.2010 17:55:21
Березовский
Спасибо, смысл понял.. но решил не заморачиваться с
передачей результата запроса, вызову так

var q = from p in db.MyTable
                select p;

         foreach(var recodrd  in q )
          {
          // дерну N раз с передачей значения
            SomeClass(recodrd.MyField);
          }


так не хорошо
вот так попробуйте:
List<MyTableEntity> q = (from p in db.MyTable
                select p).ToList();

          // дерну N раз с передачей значения
            SomeClass(recodrd.MyField);

...

void  SomeClass(List<MyTableEntity> list){...}
линк
МСУ
Дата: 15.05.2010 13:51:41
1. Типизация, как уже советовали. Самый правильный вариант с точки зрения ООП.
2. Рефлексия
3. dynamic (FW 4.0)

var member = new { Id = 1, Title = "Test" };
int id = GetId(member);
string title = GetTitle(member);

string GetTitle(object member)
{
    return member.GetType().GetProperty("Title").GetValue(member, null) as string;
}

int GetId(dynamic member)
{
    return member.Id;
}
Березовский
Дата: 16.05.2010 17:14:49
Cпасибо