Zum Inhalt springen
  • 0

C# WebApi - benötige Hilfe beim Entity Framework und der DBContext Klasse


TheWorldDrown

Frage

Ja Moin,

vorab erstmal, meine Aufgabe war folgende: [Erstelle einen Webservice der ein oder x Objekte entgegennimmt und in einer SQL Datenbank speichert]

ich habe einen Webservice geschrieben der das ADO.NET Entity Data Model enthält das die Daten vom SQL Server abruft. Ich hatte im Entity Data Model Wizard "EF Designer from Database" ausgewählt. Nachdem ich im Wizard den SQL Server und die Tabelle ausgewählt hatte, wurde die Model.cs generiert und der Verbindungsstring der Datenbank in der app.config angelegt. Soweit funktioniert alles. Ich kann meinen Webservice ansprechen und mehrere Objekte aus meinem Http Body in meiner Datenbank speichern.

Leider kam eine neue Anforderung: [Der SQL Connection String soll während der Laufzeit aus einer Konfigurationsdatei ausgelesen werden]

Ich denke ich kann den Connection String mit der SqlConnectionStringBuilder Klasse anpassen. Bisher hatte ich meine Konfigurationsdateien im selben Verzeichnis wie meine kompilierte Anwendung und konnte diese einfach mit meiner IniReaderKlasse und dem Pfad der config.ini (Directory.getCurrentDirectory() + IniName) ansteuern. Leider geht das beim Webservice nicht, da alle Directory Methoden auf den Installationsordner vom IIS verweisen, da dieser meine http Anfrage bearbeitet. Wie macht man sowas normalerweise bei einem Webservice? Bin da ein wenig Ratlos.

 

 

 

 

Bearbeitet von TheWorldDrown
Link zu diesem Kommentar
Auf anderen Seiten teilen

13 Antworten auf diese Frage

Empfohlene Beiträge

  • 0

Handelt es sich hier um .Net Core oder um das .NET Framework?

Wenn es .NET Core ist sieh dir mal den ConfigurationManager an.

https://docs.microsoft.com/de-de/dotnet/api/system.configuration.configurationmanager?view=dotnet-plat-ext-3.1

an.

Denn SqlConnectionStringBuilder kannst du hernehmen. Mach ich auch, da ich den Connectionstring mit AES verschlüssel bzw. entschlüssel.

Bearbeitet von KeeperOfCoffee
Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 0
vor 4 Minuten schrieb KeeperOfCoffee:

Handelt es sich hier um .Net Core oder um das .NET Framework?

Wenn es .NET Core ist sieh dir mal den ConfigurationManager an.

https://docs.microsoft.com/de-de/dotnet/api/system.configuration.configurationmanager?view=dotnet-plat-ext-3.1

an.

Es handelt sich um das .NET Framework. Gibt es hier auch eine Möglichkeit?

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 0

Oh ja denn gibt es laut den Docs auch fürs normale Framework

Einfach in meinem Links links oben aufs Framework wechseln.

Edit: Kann sein, dass du den über NuGet bekommst 

https://www.nuget.org/packages/System.Configuration.ConfigurationManager/

Bearbeitet von KeeperOfCoffee
Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 0
vor 5 Minuten schrieb KeeperOfCoffee:

Oh ja denn gibt es laut den Docs auch fürs normale Framework

Einfach in meinem Links links oben aufs Framework wechseln.

Edit: Kann sein, dass du den über NuGet bekommst 

https://www.nuget.org/packages/System.Configuration.ConfigurationManager/

Ich hab die Reference auf die System.Configuration.dll tatsächlich schon seit ner Stunde in meinem Projekt.

Verdammt ich war so nah dran 🤪

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 0

@KeeperOfCoffee Den Code hatte ich ganz ähnlich schon in meinem Projekt. Hat mich aber irgendwie nicht weitergebracht. ich bekomme über 

config.ConnectionStrings.ConnectionString["NameDesConnectionStrings"]

folgenden ConnectionString aus meiner web.config zurück:

image.thumb.png.3edb21ee4a1372e7cb97443e392c90cc.png

In dem XML Element <connectionString> steht der String der mir durch mein ADO.NET Entity Data Model generiert wurde. Mir ist noch nicht ganz klar wie man einen Webservice auf dem Server betreibt, aber ich denke nicht das ein Kunde meinen Projektordner hat um dieses XML Element an seinen SQL Server anzupassen.

Oder versteh ich hier was falsch?😅

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 0

Erstmal würde ich .NET Core nehmen, anstatt das .NET-Framework.

Für die Kommunikation mit der Datenbank würde ich auch Entity Framework Core nehmen, anstatt direkt ADO.NET.

Entity Framework Core präferiert den Code First ansatz. D.h. man schreibt zuerst den Code und daraus werden die Tabellen erzeugt. Der umgekehrte Weg ist allerdings auch möglich:

https://entityframeworkcore.com/approach-database-first

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 0
vor einer Stunde schrieb KeeperOfCoffee:

War das .NET Framework eine Vorgabe des Chefs/Vorgesetzten?

 

 

Es gab keine Vorgaben. Die User Story lautete folgendermaßen: "Webservice push programmieren"

Der Projektleiter versteht nichts von Programmierung. Ich soll es einfach so machen, das es funktioniert 🤪

Bearbeitet von TheWorldDrown
Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 0
Am 7.8.2020 um 08:36 schrieb TheWorldDrown:

Es gab keine Vorgaben. Die User Story lautete folgendermaßen: "Webservice push programmieren"

Das ist keine User Story. Ein Story wäre zum Beispiel: "Als User möchte ich eine Push-Benachrichtigung erhalten, wenn mir eine Kontakt-Anfrage gestellt wurde um über Kontaktanfragen informiert zu werden auch wenn die App nicht geöffnet ist".

Am 7.8.2020 um 08:36 schrieb TheWorldDrown:

Der Projektleiter versteht nichts von Programmierung. Ich soll es einfach so machen, das es funktioniert 🤪

Hast du denn Tasks dazu? Dann stell die einfach auf "Won't do" mit dem Kommentar "Ticket nicht klar" o.ä. Dann ist der Handlungsbedarf beim Projektleiter und nicht bei dir.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Diese Frage beantworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...