Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋼) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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());
                }
            }
        }

 

Die coolen Kinder benutzen ein Migration Framework ala https://fluentmigrator.github.io/, oder Àhnliches

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

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.

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.