Προγραμματισμός

Πώς να χρησιμοποιήσετε το Dapper ORM στο C #

Οι αντιστοιχιστικοί αντιστοιχιστές αντικειμένων (ORM) χρησιμοποιούνται εδώ και πολύ καιρό για να εξαλείψουν την αναντιστοιχία αντίστασης που υπάρχει μεταξύ των μοντέλων αντικειμένων των γλωσσών προγραμματισμού και των μοντέλων δεδομένων σε σχεσιακές βάσεις δεδομένων. Το Dapper είναι ένα ανοιχτού κώδικα, ελαφρύ ORM που αναπτύχθηκε από την ομάδα Stack Overflow. Το Dapper είναι πολύ γρήγορο σε σύγκριση με άλλα ORM κυρίως λόγω του μικρού βάρους του.

Το Dapper δημιουργήθηκε με γνώμονα την απόδοση και την ευκολία χρήσης. Παρέχει υποστήριξη τόσο για στατική όσο και για δυναμική δέσμευση αντικειμένων χρησιμοποιώντας συναλλαγές, αποθηκευμένες διαδικασίες ή μαζικά ένθετα δεδομένων.

Εγκαταστήστε το Dapper ORM στο Visual Studio

Για να ξεκινήσετε να χρησιμοποιείτε το Dapper, ακολουθήστε τα εξής βήματα:

  1. Ανοίξτε το Visual Studio
  2. Κάντε κλικ στο Αρχείο -> Νέο -> Έργο
  3. Επιλέξτε "Web -> ASP.Net Web Application" από το παράθυρο διαλόγου "New Project"
  4. Καθορίστε ένα όνομα για το έργο Ιστού
  5. Επιλέξτε το κενό πρότυπο έργου για ASP.Net
  6. Κάντε κλικ στο OK για να αποθηκεύσετε το έργο

Αυτό δημιουργεί ένα κενό έργο εφαρμογής ιστού ASP.Net.

Εάν έχετε εγκαταστήσει το NuGet, μπορείτε να εγκαταστήσετε το Dapper χρησιμοποιώντας το NuGet - απλώς επιλέξτε το έργο στο παράθυρο Solution Explorer, κάντε δεξί κλικ στο "Διαχείριση πακέτων NuGet ..." και βρείτε το Dapper. Στη συνέχεια, κάντε κλικ στο Εγκατάσταση για να ξεκινήσετε την εγκατάσταση του Dapper. Μόλις το Dapper εγκατασταθεί επιτυχώς, μπορείτε να πάτε.

CRUD στο .Net χρησιμοποιώντας Dapper ORM

Ας γράψουμε τώρα έναν κώδικα χρησιμοποιώντας το Dapper για να εκτελέσουμε λειτουργίες CRUD σε μια βάση δεδομένων. Σκεφτείτε μια βάση δεδομένων που περιέχει έναν πίνακα που ονομάζεται Συγγραφέας με τα ακόλουθα πεδία.

  • ταυτότητα
  • Ονομα
  • Επίθετο

Πρέπει να δημιουργήσετε μια κλάση οντοτήτων (κλάση POCO) για αυτόν τον πίνακα βάσης δεδομένων για απλότητα όταν εργάζεστε με το Dapper. Ακολουθεί η κλάση οντοτήτων που ονομάζεται Συγγραφέας που αντιστοιχεί στον πίνακα Συγγραφέα στη βάση δεδομένων.

δημόσια τάξη Συγγραφέας

    {

δημόσιο int Id {get; σειρά; }

δημόσια συμβολοσειρά FirstName {get; σειρά; }

δημόσια συμβολοσειρά LastName {get; σειρά; }

    }

ο Ερώτηση() Η μέθοδος επέκτασης στο Dapper σας επιτρέπει να ανακτήσετε δεδομένα από τη βάση δεδομένων και να συμπληρώσετε δεδομένα στο μοντέλο αντικειμένου σας. Η ακόλουθη μέθοδος ανακτά όλες τις εγγραφές από τον πίνακα Συγγραφέας, τις αποθηκεύει στη μνήμη και επιστρέφει τη συλλογή.

δημόσια λίστα ReadAll ()

{

χρησιμοποιώντας (IDbConnection db = new SqlConnection (ConfigurationManager.ConnectionStrings ["AdventureWorks"]. ConnectionString))

         {

επιστροφή db.Query

("Επιλέξτε * Από συντάκτη"). ToList ();

        }

    }

Σημειώστε ότι πρέπει να συμπεριλάβετε το χώρο ονομάτων Dapper στο πρόγραμμά σας για να αξιοποιήσετε το πλαίσιο Dapper.

Η ακόλουθη μέθοδος δείχνει πώς μπορείτε να αναζητήσετε μια συγκεκριμένη εγγραφή από τον πίνακα Συγγραφέας.

δημόσιο Εύρεση συγγραφέα (int id)

    {

χρησιμοποιώντας (IDbConnection db = new SqlConnection (ConfigurationManager.ConnectionStrings["AdventureWorks"]. ConnectionString))

        {

επιστροφή db.Query ("Select * From Author" +

WHERE Id = @Id ”, νέο {id}). SingleOrDefault ();

        }

    }

ο Εκτέλεση() Η μέθοδος του πλαισίου Dapper μπορεί να χρησιμοποιηθεί για την εισαγωγή, ενημέρωση ή διαγραφή δεδομένων σε μια βάση δεδομένων. Αυτή η μέθοδος επιστρέφει μια ακέραια τιμή που υπονοεί τον αριθμό των σειρών που έχουν επηρεαστεί κατά την εκτέλεση του ερωτήματος.

Η ακόλουθη μέθοδος δείχνει πώς μπορείτε να ενημερώσετε μια εγγραφή χρησιμοποιώντας το πλαίσιο Dapper.

public int Ενημέρωση (Συγγραφέας)

    {

χρησιμοποιώντας (IDbConnection db = new SqlConnection (ConfigurationManager.ConnectionStrings["AdventureWorks"]. ConnectionString))

        {

συμβολοσειρά sqlQuery +

"LastName = @LastName" + "WHERE Id = @Id";

int rowsAffected = db.Execute (sqlQuery, συγγραφέας);

σειρές επιστροφής

        }

    }

Όπως μπορείτε να δείτε στο παραπάνω απόσπασμα κώδικα, το Εκσυγχρονίζω() Η μέθοδος επιστρέφει τον αριθμό των σειρών που έχουν επηρεαστεί, δηλαδή τον αριθμό των εγγραφών που έχουν ενημερωθεί. Σε αυτό το παράδειγμα, μόνο μία εγγραφή έχει ενημερωθεί και ως εκ τούτου η μέθοδος θα επιστρέψει 1 στην επιτυχία.

Αποθηκευμένες διαδικασίες χρησιμοποιώντας το Dapper ORM

Για να εργαστείτε με αποθηκευμένες διαδικασίες χρησιμοποιώντας το Dapper, θα πρέπει να αναφέρετε ρητά τον τύπο εντολής κατά την κλήση του Ερώτηση ή το Εκτέλεση μεθόδους. Ακολουθεί ένα παράδειγμα που δείχνει πώς μπορείτε να χρησιμοποιήσετε αποθηκευμένες διαδικασίες με το Dapper.

 δημόσια λίστα Διαβάστε ()

    {

χρησιμοποιώντας (IDbConnection db = νέο SqlConnection (ConfigurationManager.ConnectionStrings["AdventureWorks"]. ConnectionString))

        {

συμβολοσειρά readSp;

επιστροφή db.Query (readSp,commandType: CommandType.StoredProcedure) .ToList ();

        }

    }

Το πλαίσιο Dapper υποστηρίζει επίσης συναλλαγές, δηλαδή, μπορείτε να χρησιμοποιήσετε συναλλαγές, εάν χρειάζεται. Για να το κάνετε αυτό, μπορείτε να επωφεληθείτε από το Έναρξη συναλλαγής () και EndTransaction () μεθόδους όπως συνήθως όταν εργάζεστε με συναλλαγές στο ADO.Net. Στη συνέχεια θα πρέπει να γράψετε τις συναλλαγές σας στο εσωτερικό Έναρξη συναλλαγής και EndTransaction κλήσεις μεθόδου.

Το Dapper micro ORM είναι εξαιρετικά ελαφρύ και εύκολο στη χρήση. Δεν δημιουργεί το SQL σας για εσάς, αλλά διευκολύνει την αντιστοίχιση των αποτελεσμάτων των ερωτημάτων στα POCO σας (απλά παλιά αντικείμενα CLR). Το καλύτερο από όλα, έχετε πολύ πιο γρήγορη ταχύτητα εκτέλεσης από ό, τι με το Entity Framework - σχεδόν το ίδιο με το ADO.Net, στην πραγματικότητα.

Κάντε περισσότερα με το C #:

  • Πώς να εργαστείτε με το AutoMapper στο C #
  • Πότε να χρησιμοποιήσετε μια αφηρημένη τάξη εναντίον διεπαφής στο C #
  • Πώς να εργαστείτε με νήματα στο C #
  • Πώς να χρησιμοποιήσετε το Dapper ORM στο C #
  • Πώς να εφαρμόσετε το μοτίβο σχεδίασης αποθετηρίου στο C #
  • Πώς να εφαρμόσετε έναν απλό καταγραφέα στο C #
  • Πώς να συνεργαστείτε με εκπροσώπους στο C #
  • Πώς να συνεργαστείτε με τους αντιπροσώπους Action, Func και Predicate στο C #
  • Πώς να εργαστείτε με το log4net στο C #
  • Πώς να εργαστείτε με προβληματισμό στο C #