Derzeit habe ich mit einem Entity Framework-Problem zu kämpfen. Ich habe einen WCF-Service, der auf dem ef-Framework sitzt und Abfragen an das Framework erlaubt. Irgendwann kann der Benutzer eine Datei vom Framework anfordern. Die Dateien werden durch Lösungseinträge referenziert. Wenn Sie also eine Datei aus einer Lösung anfordern, wird die Referenz geladen, um Zugriff auf den Dateispeicher zu erhalten.Entladen einer Datenreferenz in Entity Framework
Das funktioniert alles gut, aber ab diesem Punkt, wenn Sie eine weitere Abfrage, die diesen Lösungseintrag zurückgibt, wird die gesamte Datei an das Ergebnis zurückgegeben. Ich brauche eine Möglichkeit, die Referenz zu lösen oder zu entladen, so dass die Ergebniseinträge nur noch eine nicht geladene Referenz auf den Dateispeicher enthalten.
Ich habe versucht, einen neuen Kontext zu erstellen und diesen Kontext abzufragen, um Informationen abzurufen, aber wenn ich das tue, wird auch die Entität im ursprünglichen Kontext geändert.
Ich habe versucht, die Entität aus dem ursprünglichen Kontext zu lösen und dann aus dem neuen Kontext abfragen. Das funktioniert auch nicht.
Ich habe einen Weg gefunden, dies zu tun. Für alle Nicht-Datei-Download-Abfragen lösche ich die Ergebniseinheit und sende sie über die Leitung. Ich bin mir nicht sicher, ob das der beste Weg ist.
Ich hoffe, jemand könnte einige Einblicke geben, danke für die Mühe.
können Sie klären, wie Sie den WCF-Dienst hosten (selbst gehostet oder IIS gehostet) und erläutern, was Sie mit der in den Dateien enthaltenen Lösungsreferenz meinen (wie steht die Referenz zu den Dateien)? –
Die Site wird von IIS gehostet, und die Referenzen beziehen sich aufgrund von Entity Framework auf die Dateien. Die Dateien befinden sich in einer separaten Tabelle, sind jedoch über einen externen Schlüssel mit den Informationstabellen verknüpft. Um aus der Informationstabelle auf die verknüpfte Entität zuzugreifen, müssen Sie die Dateireferenz laden. Sobald das Lazy-Laden stattfindet, können Sie die Verbindung nicht trennen. – Johannes
Meinen Sie, alle Dateien sind in der Datenbank und Sie haben einen Entitätstyp für die Dateien? Wenn ja, wenn Sie sagen, dass Sie versucht haben, Entitäten zu trennen, ist das "Lösung" Entitäten oder Dateientitäten? Letzteres sollte funktionieren. – Marcanpilami