Я бы избегал сериализации, когда у вас есть возможность просто передать данные как строго типизированный класс. И это то, что вы должны будете сделать. Я верю, что когда выйдет .Net 4.0, вы сможете передавать переменные, но до тех пор попробуйте вернуть ваш запрос в виде IEnumerable вместо var, если вам нужно передать его другой функции.
IE:
public class myClass
{
public int RecordID { get; set; }
public string Field1 { get; set; }
}
public void GetDataAndSendToOtherLayer()
{
using (DBDataContext db = new DBDataContext)
{
IEnumerable<myClass> Recs =
from tab in db.table
select new myClass
{
RecordID = tab.RecordID,
Field1 = tab.Field1
};
OtherLayer.DoSomething(Recs);
}
}