Hallole,
ich bastele gerade ein bisschen mit Blazor (WASM) rum, und wollte dort eine einfache Tabelle von meinem PostgreSQL-Server anzeigen lassen.
--EDIT:--
Das unten geschriebene bezieht sich auf meinen Ansatz mit WASM, also Blazor WebAssembly. Bastele ich das Ganze um in eine Blazor - Server App, dann funktioniert es!!
-- END EDIT --
Das klappt natürlich nicht auf Anhieb und die Fehlermeldung ist irgendwie blödsinnig.
Mache ich das alles nur mit dem SQL-Server, dann kommt die Meldung
Der Fehler tritt dann auf, wenn ich über den Context auf DBSet (
Eine Recherche im Netz brachte zumindest den Hinweis, dass das Problem mit den Abhängigkeiten der verwendeten Pakete zusammenhängen könnte. Und ich muss sagen, ich blicke das grad nicht so ganz, bin eher verwirrt.
Als Zielplattform ist angegeben .NET 5.0
Folgende Pakete sind für den Datenbankzugriff installiert:
Npgsql.EntityFrameworkCore.PotsgreSQL v5.0.5.1
Microsoft.EntityFramework.Core v5.0.5
Ich kann hier keine Konflikte erkennen.
Oder kommt das Problem von wo ganz woanders her? Zumindest meinem Empfinden nach, mache ich das alles doch nach Lehrbuch, oder?
Gruß
MQ
ich bastele gerade ein bisschen mit Blazor (WASM) rum, und wollte dort eine einfache Tabelle von meinem PostgreSQL-Server anzeigen lassen.
--EDIT:--
Das unten geschriebene bezieht sich auf meinen Ansatz mit WASM, also Blazor WebAssembly. Bastele ich das Ganze um in eine Blazor - Server App, dann funktioniert es!!
-- END EDIT --
HTML-Quellcode
- @page "/zuege"
- @using DSO_Web.Model;
- @using DSO_Web.Services;
- @inherits OwningComponentBase<DSOService>;
- <h3>Züge</h3>
- <table>
- <thead>
- Header
- </thead>
- <tr>
- <th>Lager</th>
- </tr>
- @foreach (var item in liste) {
- <tr>
- <td>
- @item
- </td>
- </tr>
- }
- </table>
- @code {
- public List<ZugEntity> liste;
- protected override void OnInitialized() {
- liste = Service.Züge();
- }
- }
C#-Quellcode
- public class DSOService {
- protected readonly DSOContext dso;
- public DSOService(DSOContext db) {
- dso = db;
- }
- public List<ZugEntity> Züge() {
- try {
- return dso.Züge.ToList();
- }
- catch (Exception ex) {
- ZugEntity zug = new ZugEntity();
- zug.Lager = ex.Message;
- List<ZugEntity> ret = new List<ZugEntity>();
- ret.Add(zug);
- return ret;
- }
- }
- }
C#-Quellcode
- public static async Task Main(string[] args) {
- var builder = WebAssemblyHostBuilder.CreateDefault(args);
- builder.RootComponents.Add<App>("#app");
- builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) });
- builder.Services.AddEntityFrameworkNpgsql()
- .AddDbContext<DSOContext>(o => o.UseNpgsql("..."));
- builder.Services.AddEntityFrameworkSqlServer()
- .AddDbContext<CaLaboContext>(xx => xx.UseSqlServer("..."));
- builder.Services.AddScoped<DSOService>();
- builder.Services.AddScoped<CaLService>();
- await builder.Build().RunAsync();
- }
Das klappt natürlich nicht auf Anhieb und die Fehlermeldung ist irgendwie blödsinnig.
System.Net.NameResolution is not supported on this platform.
Mache ich das alles nur mit dem SQL-Server, dann kommt die Meldung
System.Data.SQLClient not supported on this platform
Der Fehler tritt dann auf, wenn ich über den Context auf DBSet (
dso.Züge.ToList()
) zugreife, daher der try-catch-Block.Eine Recherche im Netz brachte zumindest den Hinweis, dass das Problem mit den Abhängigkeiten der verwendeten Pakete zusammenhängen könnte. Und ich muss sagen, ich blicke das grad nicht so ganz, bin eher verwirrt.
Als Zielplattform ist angegeben .NET 5.0
Folgende Pakete sind für den Datenbankzugriff installiert:
Npgsql.EntityFrameworkCore.PotsgreSQL v5.0.5.1
Microsoft.EntityFramework.Core v5.0.5
Ich kann hier keine Konflikte erkennen.
Oder kommt das Problem von wo ganz woanders her? Zumindest meinem Empfinden nach, mache ich das alles doch nach Lehrbuch, oder?
Gruß
MQ
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „MasterQ“ ()