Zum Inhalt springen
  • 0

Frage zu Dapper


Frage

Geschrieben

Aktuell benutze ich Dapper als ORM in meinen .NET apps. Finde EF super kompliziert 😅

Ich zerbrech mir aktuell den Kopf und finde keine Lösung. Ich hab folgende Situation: Ich möchte eine Datenbank erstellen, ein paar Tabellen hinzufĂŒgen und das ganze dann mit Dummy Daten befĂŒllen. 

Ich möchte das ganze mit C# und Dapper machen. (Falls möglich)

Nachdem ich meine "SampleDB" erstellt habe, möchte ich meine SqlConnection, zu der SampleDB wechseln um meine Tabellen zu erstellen (befinde mich gerade auf der Master Db).

Leider funktioniert das nicht. Hier meine Funktion, hoffe Ihr könnt mir helfen..

public void InitializeDatabase(IConfiguration configuration)
        {
            using (IDbConnection con = new SqlConnection(configuration.GetConnectionString("DefaultConnection")))
            {
                try
                {
                    con.Execute("CREATE DATABASE SampleDB");
                    con.ChangeDatabase("SampleDB"); // Hier bekomme ich folgenden Fehler: {Invalid operation. The connection is closed}
                    con.Execute("CREATE TABLE Employee(Id int Identity(1, 1) Primary Key");
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.ToString());
                }
            }
        }

 

5 Antworten auf diese Frage

Empfohlene BeitrÀge

  • 0
Geschrieben (bearbeitet)

hab folgendes gemacht:

 con.Execute("CREATE DATABASE SampleDB");
 con.Execute("CREATE TABLE SampleDB.dbo.Employee(Id int Identity(1, 1) Primary Key)");

 

was wÀren hier die best practices?

Bearbeitet von JukeGirls4Days
  • 0
Geschrieben

Nur weil du eine Instanz der Klasse SqlConnection hast, heißt es noch lange nicht, dass du eine Verbindung zum Datenbankmanagementsystem (DBMS) aufgebaut hast. ;)  Schaue dir dazu mal die Dokumentation dieser Klasse an. Um eine Verbindung aufzubauen, gibt es noch die Methode Open().

Die Execute()-Methode ist eine sog. Extension Method von Dapper, die intern ebenfalls die Open()-Methode aufruft und die Verbindung via Close() schließt, wenn er fertig ist. Siehe: https://github.com/StackExchange/Dapper/blob/e2ffcdd1a4007d4184917b05a647040a6cf304e2/Dapper/SqlMapper.cs#L532

  • 0
Geschrieben
vor 10 Stunden schrieb JukeGirls4Days:

Finde EF super kompliziert 😅

Und? Mal nur so...Dapper ist lÀngst nicht Industriestandard. In der .NET Welt wird EF Core immer noch wesentlich hÀufiger eingesetzt. 

Sagst du deinem Chef "ist mir zu kompliziert" wenn er es auf EF Core haben will?

  • 0
Geschrieben
vor 12 Minuten schrieb KeeperOfCoffee:

Und? Mal nur so...Dapper ist lÀngst nicht Industriestandard. In der .NET Welt wird EF Core immer noch wesentlich hÀufiger eingesetzt. 

Was ist denn schon "Industriestandard"?

Wenn ich hier so allgemein die Threads anschaue, dann denke ich mir, dass in Deutschland noch Plaintext-SQL und ein eigenes Mapping der Standard ist. Fakt ist, dass Dapper zu den meistbekanntesten Micro-O/R-Mappern zÀhlt (wenn nicht sogar der bekannteste). Alleine deswegen, weil Stackoverflow darauf aufbaut. Es hat also eine gewisse Reife erreicht und wird auch produktiv eingesetzt und stammt nicht von zwei Hinterhof-BWL-Studenten, die das neben ihrem Studium zusammenfrickeln.

Wir haben in einer Software auch Dapper im Einsatz, weil wir was leichtgewichtiges haben wollten. Eine Austauschbarkeit der Datenbank war uns nicht wichtig, da dies eh nicht vorkommen wird und da Dapper gut dokumentiert ist und aufgrund seiner Kompaktheit haben es auch neue Entwickler einfacher, sich dort einzuarbeiten und ich kenne kein C#-Entwickler, der nicht mal was davon gehört hat.

vor 25 Minuten schrieb KeeperOfCoffee:

Sagst du deinem Chef "ist mir zu kompliziert" wenn er es auf EF Core haben will?

Wenn ich mir die Posts von @JukeGirls4Days anschaue, glaube ich nicht, dass der derzeitige Chef irgendwas verlangt. Offenbar ist es eine reine Frickelbude.

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...