La façon la plus rapide à remplir Table de requête LINQ à l'aide de DataContext

Je suis en train de lancer une requête linq mais j'ai besoin de la suite comme un datatable que je l'utilise pour stocker les enregistrements de différentes requêtes dans le même état d'affichage de l'objet.

Les 2 versions en dessous de la compilation, mais le retour à un ensemble vide. L'erreur exacte est "Valeur ne peut pas être null.
Nom du paramètre: source"
. (et oui, j'ai vérifié qu'il y a des données):

MyDatabaseDataContext db = new MyDatabaseDataContext(conn); 
IEnumerable<DataRow> queryProjects = 
    (from DataRow p in db.STREAM_PROJECTs.AsEnumerable()
    where p.Field<int>("STREAM_ID") == StreamID
    select new
    {
        PROJECT_ID = p.Field<int>("PROJECT_ID"),
        PROJECT_NAME = p.Field<string>("PROJECT_NAME")
    }) as IEnumerable<DataRow>;
DataTable results = queryProjects.CopyToDataTable<DataRow>();

...

//(from p in db.STREAM_PROJECTs.AsEnumerable()
//where p.STREAM_ID == StreamID
//select new
//{
//   p.PROJECT_NAME,
//   p.PROJECT_ID
//}) as IEnumerable<DataRow>;

Les exemples de cette fil ne semble pas fonctionner dans cette situation.

Je suppose que je pourrais juste exécuter une requête sql de commande à l'ancienne, mais ce n'est pas linq censé être plus rapide?

OriginalL'auteur JumpingJezza | 2011-02-10