Cara Menambahkan EF ke Proyek .NET Anda

Entity Framework adalah kerangka kerja pemetaan relasional objek (ORM) sumber terbuka untuk aplikasi .NET. Ini memungkinkan pengembang bekerja dengan data pada tingkat abstraksi yang lebih tinggi tanpa perlu khawatir tentang tipe atau struktur basis data tempat data disimpan.

Fokus artikel ini adalah untuk menunjukkan dan menjelaskan betapa mudahnya menambahkan Entity Framework ke proyek .NET.

CodingSight - Kerangka Entitas - hanya dengan beberapa klik

Entity Framework menghemat banyak waktu dan tenaga untuk pengembang .NET. Setelah mengaturnya sekali, kita tidak perlu khawatir lagi tentang tabel atau kolom database. Pengembang dapat bekerja dengan data menggunakan objek .NET, dengan lebih sedikit kode, dan tanpa perlu menangani tugas terkait basis data apa pun.

Gambar berikut menunjukkan di mana EF cocok dengan arsitektur 3-lapis.

Entity Framework cocok dengan arsitektur 3-lapis

Fitur Kerangka Entitas

  • lintas platform – berjalan di Windows, Linux, dan Mac
  • Pemodelan – membuat Entity Data Model (EDM) dan menggunakannya saat menanyakan atau menyimpan data ke database
  • Menanyakan – mendukung kueri LINQ bersama dengan kueri SQL mentah langsung ke database
  • Ubah Pelacakan – melacak perubahan dalam instance entitas
  • Penghematan – Metode SaveChange dan SaveChangesAsync melakukan perintah INSERT, UPDATE, dan DELETE ke database berdasarkan perubahan model data
  • Konkurensi – menggunakan Konkurensi Optimis untuk melindungi dari masalah jika banyak pengguna mengakses data
  • Transaksi – menggunakan manajemen transaksi otomatis
  • Caching – termasuk caching tingkat pertama. Ini berarti bahwa kueri berulang akan mengembalikan data dari cache alih-alih mengenai database
  • Konvensi bawaan – mengikuti konvensi pola pemrograman konfigurasi dan menyertakan seperangkat aturan default yang secara otomatis mengonfigurasi model EF
  • Konfigurasi – mendukung penggunaan atribut anotasi data
  • Migrasi – menyediakan satu set perintah migrasi yang dapat dijalankan untuk membuat skema basis data pembaruan

Tambahkan Kerangka Entitas ke Proyek Anda

Dalam artikel kami yang berfokus pada LINQ sebelumnya, kami membuat model data. Untuk menghemat waktu, kami akan mendefinisikan model kami lagi di sini.

public class Student 
{ 
public int Id { get; set; } 
public string FirstName { get; set; } 
public string LastName { get; set; } 
public int BirthYear { get; set; } 
public enum GenderType { Female, Male }; 
public GenderType Gender { get; set; } 
public string Interests { get; set; } 
} 
public class StudentProfile 
{ 
public string FullName { get; set; } 
public int Age { get; set; } 
public Student.GenderType Gender { get; set; } 
public string[] Interests { get; set; } 
} 
public class Teacher 
{ 
public int Id { get; set; } 
public string FirstName { get; set; } 
public string LastName { get; set; } 
6 
} 
public class Subject 
{ 
public int Id { get; set; } 
public string Name { get; set; } 
public int Capacity { get; set; } 
public int TeacherId { get; set; } 
} 

Sekarang, kami ingin dapat menyimpan data dalam database.

Hal pertama yang perlu saya lakukan adalah menambahkan Entity Framework ke proyek saya.

Di Studio visual, Buka Manajemen Nuget dan cari kerangka kerja entitas:

Di Visual Studio, buka Nuget Management dan cari EntityFramework

Pilihan lain untuk menginstal EF adalah dengan menjalankan perintah berikut di Konsol Manajer Paket:

PM> Install-Package EntityFramework 

Setelah EF ditambahkan ke proyek dan kami memiliki model data kami, kami perlu membuat Konteks.

Konteks mendefinisikan sesi dengan database, memungkinkan kita untuk query dan menyimpan data.

class FacultyContext : DbContext 
{ 
public DbSet<Student> Students { get; set; } 
public DbSet<Teacher> Teachers { get; set; } 
public DbSet<Subject> Subjects { get; set; } 
} 

Ini adalah contoh penggunaan konteks:

using (var db = new FacultyContext()) 
{ 
var studentsCount = db.Students.Count(); 
db.Students.Add(new Student() 
{ 
FirstName = "Ivan", 
LastName = "Matec", 
Gender = Student.GenderType.Male 
}); 
db.SaveChanges(); 
Assert.AreEqual(studentsCount + 1, db.Students.Count()); 
} 

Dalam contoh sederhana ini, kami telah membuat sebuah instance dari FakultasKonteks dan menggunakannya untuk query dan menambahkan data baru ke database.

Gunakan Entity Framework dengan SQL Express

Sekarang ketika kita memiliki model data dan konteks database, mari kita hubungkan konteks ini dengan database lokal yang dihosting di SQL express. Pertama, kita menambahkan string koneksi database ke app.config kita.

<connectionStrings> 
<add 
name="FacultyContext" 
connectionString="Data Source=DESKTOP-HPNRP0PSQLEXPRESS;Initial 
Catalog=FacultyDatabase;Integrated Security=True" 
providerName="System.Data.SqlClient" /> 
</connectionStrings> 

Maka kita perlu menambahkan konstruktor default ke FakultasKonteks kelas.

public FacultyContext() : base("name=FacultyContext") 
{ 
} 

Konstruktor default memanggil konstruktor dasar menggunakan nama = sintaks. Ini memberi tahu Code First bahwa string koneksi yang digunakan untuk konteks ini harus dimuat dari file konfigurasi. Pilihan lain adalah mengatur string koneksi database secara eksplisit di konstruktor Fakultas UmumKonteks()

public FacultyContext() 
{ 
this.Database.Connection.ConnectionString = @"Data 
Source=DESKTOP-HPNRP0PSQLEXPRESS;Initial Catalog=FacultyDatabase;Integrated Security=True"; } 

Saat kita menjalankan aplikasi, Code First akan melakukan keajaibannya, dan struktur database akan dibuat.

Katakanlah kita ingin menambahkan banyak ke banyak hubungan antara Siswa dan mata pelajaran.

Setiap Siswa dapat ditugaskan ke banyak Mata Pelajaran, dan dapat ada banyak Siswa yang ditugaskan untuk setiap Mata Pelajaran.

Secara tradisional, kami akan melakukannya dengan tabel silang dengan dua tabel, Identitas Siswa dan ID Subjek. Ini akan menentukan koneksi banyak-ke-banyak antara Siswa dan mata pelajaran tabel.

Di EF, kita hanya perlu mendefinisikan properti navigasi koleksi pada kelas-kelas ini:

  • Untuk Siswa, kita harus sertakan properti navigasi ke dalam koleksi Subyek.
  • Untuk Subyek, kita harus tentukan properti navigasi ke koleksi Siswa.

Dengan konvensi penamaan default, EF akan membuat tabel silang untuk kita.

public class Student 
{ 
public int Id { get; set; } 
public string FirstName { get; set; } 
public string LastName { get; set; } 
public int BirthYear { get; set; } 
public enum GenderType { Female, Male }; 
public GenderType Gender { get; set; } 
public string Interests { get; set; } 
public virtual ICollection<Subject> Subjects { get; set; } 
} 


public class Subject 
{ 
public int Id { get; set; } 
public string Name { get; set; } 
public int Capacity { get; set; } 
public int TeacherId { get; set; } 
public Teacher Teacher { get; set; } 
public virtual ICollection<Student> Students { get; set; } 
} 

Kesimpulan

Itu dia, cara mudah untuk memasukkan dan menggunakan Entity Framework dalam proyek .NET Anda. Tentu saja, ada lebih banyak daripada yang dibahas dalam artikel ini. Apa yang dapat kami rangkum dari contoh Entity Framework singkat ini adalah betapa sederhana dan lugasnya Entity Framework. Ia melakukan persis apa yang perlu dilakukan, menangani hal-hal database, sehingga kita dapat fokus pada logika bisnis dan tingkat proyek yang lebih tinggi.

Seperti biasa, terima kasih telah bertahan sampai akhir artikel. Saya harap Anda menikmatinya dan akan terus mengikuti seri ini tentang LINQ dan topik terkait.

Ivan Matec
Postingan terbaru oleh Ivan Matec (Lihat semua)