Ihre SELECT-Anweisung gibt eine Sequenz von Zeichenfolgen zurück ( IEnumerable<string>
oder IQueryable<string>
), keine Sequenz von DataRows. CopyToDataTable () ist nur für IEnumerable<T>
verfügbar, wobei T von DataRow abgeleitet oder abgeleitet ist.
Anstelle von select new { ... }
- was Ihnen nur eine neue Sequenz dieses Typs bringt, versuchen Sie:
Was die gewünschte Sequenz von CPhysician-Zeilen zurückgeben soll.
Bearbeiten Wenn Sie ein nicht von Dataset abgeleitetes T in eine Datentabelle konvertieren möchten, verfügt MSDN über eine Beispielklasse, die einen beliebigen Datentyp widerspiegelt und die Konvertierung durchführt.
Es existiert in einem bestimmten Namespace, in dem Sie es importieren?
%Vor%Bestätigen Sie auch das Hinzufügen dieser Referenz
%Vor% Ich denke, das liegt daran, dass Sie einen anonymen Typ für das Objekt Field
erstellt haben.
Versuchen Sie Folgendes:
Definition von CopyToDataTable<T>
:
Was Sie also mit der Abfrage auswählen, muss vom Typ IEnumerable<T>
sein, wobei T
erweitert DataRow
Sie müssen auf die Assembly System.Data.DataSetExtensions
verweisen und den Namespace System.Data
verwenden.
Haben Sie auf System.Data.DataSetExtensions-Assembly verwiesen? Diese Erweiterungsmethode ist dort definiert.
Navigieren Sie weiter in MSDN online bringt mich auf diese Seite: Ссылка
Es wird im System.Data-Namespace (unter Verwendung von System.Data) angegeben, und Sie müssen auf die System.Data.DataSetExtensions.dll verweisen.