Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Rangka Kerja Entiti C#

Rangka Kerja Entiti C#

王林
王林asal
2024-09-03 15:20:001000semak imbas

Artikel berikut menyediakan garis besar untuk Rangka Kerja Entiti C#. Rangka Kerja Entiti ialah Pemetaan Perhubungan Objek (ORM) yang membantu meningkatkan produktiviti apl pengguna dengan menghapuskan tugas berlebihan dalam aplikasi. EF membina Perintah DB yang diperlukan untuk menulis atau membaca data dalam DB dan melaksanakannya dengan sempurna. Akhir sekali, EF melaksanakan pertanyaan dalam DB dan menjadikan hasilnya menjadi objek domain untuk berfungsi dengan aplikasi.

Apakah Rangka Kerja Entiti dalam C#?

Rangka Kerja Entiti ialah Rangka Kerja Pemetaan Perhubungan Sumber Objek (ORM) untuk Aplikasi .Net, yang membolehkan pembangun bekerja pada data hubungan dengan menggunakan objek khusus domain tanpa pengetahuan tentang lajur dan jadual pangkalan data di mana data akan disimpan. Tambahan pula, ia menggambarkan bahawa Rangka Kerja Entiti meminimumkan kod akses data yang biasanya ditulis oleh pembangun.

Rangka Kerja Entiti dalam Projek C#

Mari kita anggap Jabatan dan jadual Jadual Pekerja menganggap seperti jadual mengandungi rekod beberapa jabatan dan pekerja pelbagai jabatan.

Untuk mencapai matlamat ini, kita mesti membina Jabatan dan kelas Pekerja. Kemudian, untuk mendapatkan semula data tersebut daripada pangkalan data, kita perlu kod ADO.NET. Akhir sekali, apabila data diperoleh semula, kami perlu mencipta objek Pekerja dan Jabatan untuk mengisinya dengan data yang dipulihkan.
Keseluruhan perkara di atas adalah membosankan, tetapi melalui Rangka Kerja Entiti, ia adalah mudah; perkara itu boleh dilakukan secara automatik; kita perlu menyediakan Skema DB kepada EF. Mari lihat langkah berikut untuk membuat aplikasi menggunakan EF.

Untuk mencipta skema pangkalan data, gunakan Skrip SQL untuk mencipta pangkalan data EF_Demo_DB dan juga untuk mencipta jadual Pekerja dan Jabatan

Kod:

-- to create the Database EF_Demo_DB
CREATE DATABASE EF_Demo_DB;
GO
-- Use EF_Demo_DB database
USE EF_Demo_DB;
GO
-- to Create the table Departments
CREATE TABLE Departments
(
ID INT PRIMARY KEY IDENTITY(1,1),
Name VARCHAR(50),
Location VARCHAR(50)
)
Go
-- to Create the table Employees
CREATE TABLE Employees
(
ID INT PRIMARY KEY IDENTITY(1,1),
Name VARCHAR(50),
Email VARCHAR(50),
Gender VARCHAR(50),
Salary INT,
DepartmentId INT FOREIGN KEY REFERENCES Departments(ID)
)
Go
-- --to Populate the table with few records
INSERT INTO Departments VALUES ('HR', 'Bangalore')
INSERT INTO Departments VALUES ('Sales', 'Cochin')
INSERT INTO Departments VALUES ('IT', 'Chennai')
Go
--to Populate the table with few records
INSERT INTO Employees VALUES ('Philip', '[email protected]', 'Male', 45000, 2)
INSERT INTO Employees VALUES ('Mary', '[email protected]', 'Female', 30000, 2)
INSERT INTO Employees VALUES ('Valarie', '[email protected]', 'Female', 35000, 3)
INSERT INTO Employees VALUES ('John', '[email protected]', 'Male', 80000, 1)
INSERT INTO Employees VALUES ('Joseph', 'jojog.com', 'Male', 60000, 1)
INSERT INTO Employees VALUES ('Steve', '[email protected]', 'Male', 45000, 3)
INSERT INTO Employees VALUES ('Peter', '[email protected]', 'Male', 60000, 1)
INSERT INTO Employees VALUES ('Rio', '[email protected]', 'Female', 345000, 3)
INSERT INTO Employees VALUES ('Ben', '[email protected]', 'Male', 70000, 1)
Go

Untuk Mencipta Aplikasi Konsol

Setelah data sedia, cipta Aplikasi Konsol baharu dengan nama EFDemo seperti yang ditunjukkan di bawah:

Rangka Kerja Entiti C#

Untuk Menambah Model Data Entiti ADO.NET

Untuk mencipta Aplikasi Konsol tambahkan Model Data Entiti ADO.NET dan klik kanan pada projek dan Tambah -New Item-Data- Model Data Entiti ADO.NET dan buat nama sebagai EmployeeDataModel seperti yang ditunjukkan di bawah.

Rangka Kerja Entiti C#

Setelah klik pada butang Tambah, pilih Pereka EF daripada Pangkalan Data dan klik butang Seterusnya seperti yang ditunjukkan di bawah untuk memilih Pereka EF daripada pangkalan data; di sini, kami menggunakan Pendekatan Pertama Pangkalan Data EF.

Rangka Kerja Entiti C#

Setelah mengklik butang Seterusnya, ia meminta anda memilih wizard sambungan data seperti yang ditunjukkan; klik pada butang Sambungan Baharu.

Rangka Kerja Entiti C#

Setelah klik pada butang Sambungan Baharu itu, berikan butiran pangkalan data yang diperlukan dan akhirnya, “Uji Sambungan” dan klik OK.

Rangka Kerja Entiti C#

Pilih Sambungan Data dan simpan tetapan sambungan entiti dalam Apl. Kemudian, konfigurasi seperti yang ditunjukkan di bawah, berikan nama EF_Demo_DBEntities dan klik butang Seterusnya.

Rangka Kerja Entiti C#

Di sini ia meminta anda memilih Rangka Kerja Entiti 6.x dan pilih butang Seterusnya seperti yang ditunjukkan.

Rangka Kerja Entiti C#

Pilih jadual yang dikehendaki, tukar Ruang Nama Model kepada “Model Pekerja,” dan klik pada butang Selesai seperti yang ditunjukkan.

Rangka Kerja Entiti C#

Mengklik pada butang Selesai menjana fail EmployeeDataModel.edmx.

Rangka Kerja Entiti C#

Ini ialah struktur fail EDMX seperti yang ditunjukkan di bawah,

Rangka Kerja Entiti C#

Menggunakan EF, kami mencipta aplikasi.

Kod:

namespace EFDemo
{
class Program
{
static void Main(string[] args)
{
using (EF_Demo_DBEntities DBEntities = new EF_Demo_DBEntities())
{
List<Department> listDepartments = DBEntities.Departments.ToList();
Console.WriteLine();
foreach (Department dept in listDepartments)
{
Console.WriteLine(" Department = {0}, Location = {1}", dept.Name, dept.Location);
foreach (Employee emp in dept.Employees)
{
Console.WriteLine("\t Name = {0}, Email = {1}, Gender = {2}, salary = {3}",
emp.Name, emp.Email, emp.Gender, emp.Salary);
}
Console.WriteLine();
}
Console.ReadKey();
}
}
}
}

Mod dan Kelas Pangkalan Data

Ciri Rangka Kerja Entiti:

Mari lihat ciri Rangka Kerja Entiti:

  • Pemodelan: EF membina EDM berdasarkan atribut dengan sifat get/set pelbagai jenis data. Ia menggunakan model jika menyimpan atau menanyakan data entiti ke pangkalan data.
  • Penyoalan: Rangka Kerja Entiti membolehkan pertanyaan LINQ mendapatkan data daripada pangkalan data. Pembekal DB menterjemahkan pertanyaan LINQ kepada bahasa pertanyaan khusus DB. EF membenarkan pelaksanaan pertanyaan SQL kepada DB.
  • Penjejakan Perubahan: Rangka Kerja Entiti mengikuti perubahan yang berlaku pada kes nilai harta yang perlu diserahkan kepada DB.
  • Menyimpan: Rangka Kerja Entiti melaksanakan arahan INSERT, DELETE dan UPDATE ke pangkalan data berdasarkan mengubah suai entiti semasa memanggil kaedah SaveChanges(). Selain itu, Rangka Kerja entiti EF menawarkan kaedah SaveChangesAsync().
  • Konkurensi: Rangka Kerja Entiti menggunakan konkurensi optimistik secara lalai untuk menjamin perubahan melalui pengguna lain sejak data diambil daripada DB.
  • Caching: Rangka Kerja Entiti termasuk tahap awal caching di luar kotak. Jadi pertanyaan mengembalikan data daripada cache dan bukannya memukul DB.
  • Konfigurasi: Rangka Kerja Entiti membolehkan konfigurasi model EF menggunakan atribut Anotasi Data atau API untuk mengatasi konvensyen secara lalai.
  • Konvensyen Terbina dalam: Rangka Kerja Entiti mengikuti konvensyen melalui corak konfigurasi pengaturcaraan dan mengandungi peraturan lalai yang mengkonfigurasi Model EF secara automatik.

Kesimpulan

Dalam artikel ini, kami melihat ciri EF dan cara mencipta Rangka Kerja Entiti. Walau bagaimanapun, menggunakan kod ADO.NET adalah membosankan jika dibandingkan dengan EF. Selain itu, ia adalah proses yang memakan masa dan terdedah kepada ralat, jadi Microsoft menawarkan Rangka Kerja yang dipanggil Rangka Kerja Entiti untuk mengautomasikan keseluruhan kerja berkaitan DB untuk aplikasi kami.

Atas ialah kandungan terperinci Rangka Kerja Entiti C#. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:Rujukan Perhimpunan dalam C#Artikel seterusnya:Rujukan Perhimpunan dalam C#