In meiner Silverlight-Anwendung versuche ich, mit LINQ eine Datenbankverbindung herzustellen. Zuerst füge ich der SQL-Klasse einen neuen LINQ hinzu und ziehe meine Tabelle mit dem Namen "tblPersoon" hinein.
Dann versuche ich in meiner Servicedatei die folgende Abfrage auszuführen:
[OperationContract]
public tblPersoon GetPersoonByID(string id)
{
var query = (from p in tblPersoon where p.id == id select p).Single();
Aber bei tblPersoon gibt es mir den folgenden Fehler.
Es konnte keine Implementierung des Abfragemusters für den Quelltyp 'SilverlightApplication1.Web.tblPersoon' gefunden werden. 'Wo' nicht gefunden.
Und selbst wenn ich Folgendes versuche:
var query = (from p in tblPersoon select p).Single();
Es wird eine Fehlermeldung angezeigt, dass "Auswählen" nicht gefunden wurde!
Code für die generierte Klasse für meine Tabelle finden Sie hier: http://pastebin.com/edx3XRhi
Was verursacht das und wie würde ich das möglicherweise lösen?
Danke dir.
public System.Data.Linq.Table<tblPersoon> tblPersoons { get { return this.GetTable<tblPersoon>(); } }
Und wenn ich benutze: var query = (von p in tblPersoon.Cast <Person> () wähle p) .Single (); Es gibt mir die folgenden Fehler auf .Cast. 'SilverlightApplication1.Web.tblPersoon' enthält keine Definition für 'Cast'tblPersoons
(beachten Sie das s am Ende), während der Typ isttblPersoon
. Sie fragen den Typ anstelle der Eigenschaft für den Typ ab.var query = (from p in tblPersoons select p).Single();
sagt es mir, dass tblPersoons nicht einmal existiert.Möglicherweise müssen Sie
using
der Datei eine Anweisung hinzufügen . Die Standardvorlage für Silverlight-Klassen enthält sie nicht:quelle
Stellen Sie sicher, dass diese Referenzen enthalten sind:
Fügen Sie dann die using-Anweisung hinzu
quelle
Ich hatte ein ähnliches Problem mit generierten stark typisierten Datensätzen. Die vollständige Fehlermeldung lautete:
Aus meinem Code:
Also habe ich getan, was es vorgeschlagen und den Typ explizit angegeben hat:
Welches war ein Vergnügen.
quelle
Ihnen fehlt eine Gleichheit:
where
Klausel muss zu einem Booleschen Wert führen.ODER Sie sollten überhaupt nicht verwenden
where
:quelle
Ich hatte den gleichen Fehler wie im Titel beschrieben, aber für mich war es einfach, Microsoft Access 12.0 oledb zu installieren, das für die Verwendung mit LinqToExcel weiterverteilbar ist.
quelle
Der einfachste Weg, dies zu tun, besteht darin, diese IEnumerable in eine Queryable umzuwandeln
Wenn es sich um eine Abfrage handelt, ist das Ausführen von Abfragen einfach.
Bitte überprüfen Sie diesen Code:
Stellen Sie sicher, dass Sie einschließen Stellen System.Linq einschließen . Auf diese Weise wird Ihr Fehler behoben.
quelle
Für diejenigen von Ihnen (wie mich), die durch diesen Fehler zu viel Zeit verschwendet haben:
Ich hatte den gleichen Fehler erhalten: "Die Implementierung des Abfragemusters für den Quelltyp 'DbSet' konnte nicht gefunden werden", aber die Lösung für mich bestand darin, einen Fehler auf DbContext-Ebene zu beheben.
Als ich meinen Kontext erstellte, hatte ich Folgendes:
Und mein Repository (ich folgte einem Repository-Muster im ASP.NET-Handbuch) sah folgendermaßen aus:
Mein Problem ergab sich aus der Ersteinrichtung meines DbContext, als ich DbSet als generisches Element anstelle des Typs verwendete.
Ich wechselte
public DbSet Contacts { get; set; }
zupublic DbSet<Contact> Contacts { get; set; }
und plötzlich wurde die Abfrage erkannt.Dies ist wahrscheinlich, was km in seiner Antwort sagt, aber da er es erwähnte
IEnumerable<t>
und nicht, mussteDbSet<<YourDomainObject>>
ich ein paar Stunden im Code herumgraben, um die Zeile zu finden, die diese Kopfschmerzen verursachte.quelle
Ich hatte den gleichen Fehler, aber für mich wurde er darauf zurückgeführt, dass eine Datenbank und eine Tabelle den gleichen Namen hatten. Als ich das ADO .NET-Entitätsobjekt zu meinem Projekt hinzufügte, wurde das, was ich wollte, in meiner Datenbankkontextdatei falsch generiert:
was hätte sein sollen:
Und
was ich eigentlich nicht wirklich brauchte, also habe ich es auskommentiert.
Ich habe versucht, meinen Tisch so in meinen Controller zu ziehen, als ich meinen Fehler bekam:
Ich habe meinen Datenbankkontext korrigiert und danach war alles in Ordnung.
quelle