Ich habe das folgende Setup, kann das Blazor.MonoRuntime.targets
abschließen, da ein unklarer Fehler in Bezug auf Zeile 439 in der Datei Blazor.MonoRuntime.targets
(MSB3073) angezeigt wird.
Bedeutet dies im Wesentlichen, dass Entity Framework Core in keiner Weise mit Blazor Preview 6 funktioniert?
Einzelheiten:
- Von Asp.net gehosteter Blazor
- AspNetCore.Blazor (3.0.0-Vorschau6.19307.2)
- Microsoft.EntityFrameworkCore (3.0.0-Vorschau6.19304.10)
- Microsoft.EntityFrameworkCore.Design (3.0.0-preview6.19304.10)
- Microsoft.EntityFrameworkCore.SqlServer (3.0.0-preview6.19304.10)
Gelöst über eine Hack-Lösung!
Irgendwie konnte ich alles lösen und die Dinge laufen durcheinander. Ich glaube, das große, kritische war:
* Stellen Sie sicher, dass die Blazor-Client- UND -Serverprojekte nicht direkt auf Entity Framework verweisen
* Lassen Sie nicht zu, dass der Blazor-Client (direkt oder indirekt) auf das Projekt mit den generierten Entitäten verweist. Um Zugriff auf die Modelle zu erhalten, erstelle ich einfach ein Duplikat der generierten Entitäten (und entferne den "Teil" aus den generierten Klassen).
Hier ist eine Klarstellung erforderlich, richtig:
Sie können Entity Framework nicht für das Client-Projekt von Blazor verwenden. Entity Framework ist eine Servertechnologie.
Sie können Entity Framework im Serverprojekt Ihrer Anwendung verwenden.
Die Kommunikation zwischen Ihrer Client- und Server-Hosting-Seite erfolgt normalerweise über HTTP-Aufrufe (HttpClient-Dienst), Sie können jedoch auch SignleR verwenden.
Um Http-Aufrufe zu aktivieren, sollten Sie Http-Routing-Endpunkte verfügbar machen. Dies kann mithilfe von Web-API mit den erforderlichen Endpunkten aktiviert werden. Ihre Web-API-verfügbaren Methoden (Controllers-Methoden) können über Entity Framework-Objekte direkt (oder indirekt, wenn Sie Repositorys, Services usw. definieren) auf die Datenbank zugreifen und die abgefragten Daten an die aufrufenden Methoden (HttpClient-Methoden) zurückgeben.
Beachten Sie, dass ich mich in meiner Antwort insbesondere auf Blazor Client-seitige Apps beziehe, dies gilt jedoch hauptsächlich für Blazor Server-seitige Apps. Ich kann hier nur hinzufügen, dass Sie in serverseitigen Blazor-Apps keine Web-API verwenden müssen, da Blazor auf dem Server ausgeführt wird. In einem solchen Fall können Sie einen normalen Dienst definieren, um die Daten aus der Datenbank abzurufen und an die aufrufenden Methoden weiterzuleiten (hier ist kein HttpClient beteiligt).
Hoffe das hilft..