This media is not supported in your browser
VIEW IN TELEGRAM
إ₰...👨🏻‍💻CODE👩🏻‍💻...₰❥

#تعدد_الأشكال Polymorphisme

يشابه هذا المفهوم تعدد التعريف كثيرا
ويعطينا إمكانية التعامل مع الفئات المتوارثة كما لو أنها واحدة..

وهنا كود يوضح هذا المفهوم 👇🏻

class Human
{
public Human()
{
//Codes
}
public void AddFriend()
{
//Codes
}
}

class Teatcher : Human
{
// Codes
}

class Program
{
static void Work(Human O)
{
O.AddFriend();
}
static void Main(string[] args)
{
Teacher Wasam= new Teacher();
Work(Wasam);
}
}

•┈┈┈•❈••✦✾✦••❈•┈┈┈•
❥➺┊ @barmaja_Csharp
•┈┈┈•❈••✦✾✦••❈•┈┈┈•

نلاحظ أننا أرسلنا الكائن كوسيط لإجراء Work
ووفق هذا المفهوم فبإمكانك تمرير أي فئة مشتقة من الفئة الرئيسية Human كوسيط.
This media is not supported in your browser
VIEW IN TELEGRAM
إ₰...👨🏻‍💻CODE👩🏻‍💻...₰❥

#الفئات_المجردة abstract

الفئات المجردة لا يمكن استنساخ كائنات منها
لكن يبقى لك حرية استنساخ كائنات من فئات وارثة منها فلهذه الفئات إمكانية الوراثة...

#الفئات_المغلقة sealed

عكس الفئات المجردة تماما فهي فئات لا يمكن الوراثة منها مطلقا...

#الوظائف_الوهمية virtual Methods

لجعل طريقة ما وهمية استخدم الكلمة virtual عند التصريح عنها.
وللتعديل عليها في الفئات الوارثة استخدم إحدى الكلمتين new أو override.
وللنفوذ لطرق الفئة الرئيسية يمكن استخدام الكلمة base.
فكما أن الكلمة this تمثل الفئة الحالية، فإن الكلمة base تمثل الفئة الرئيسية.


•┈┈┈•❈••✦✾✦••❈•┈┈┈•
❥➺┊ @barmaja_Csharp
•┈┈┈•❈••✦✾✦••❈•┈┈┈•
This media is not supported in your browser
VIEW IN TELEGRAM
إ₰...👨🏻‍💻CODE👩🏻‍💻...₰❥

مثال بسيط يوضح مفهوم الدوال الوهمية Virtual :-

using System;
using System.IO;
using System.Linq;
using System.Collections.Generic;

namespace CSharp
{
class Human
{
virtual public void job()
{
Console.Write("I work, ");
}
}
class Teacher : Human
{
public override void job()
{
base.job();
Console.WriteLine("I am a teacher");
}
}

class Employee : Human
{
public override void job()
{
//base.job;
Console.WriteLine("I am an employee");
}
}
class Engineer : Human
{
new public void job()
{
Console.WriteLine("I am an engineer");
}
}

class Program
{
static void Main(string[] args)
{
Human Wasam = new Teacher();
Human Ali = new Employee();
Engineer Hamza = new Engineer();
Wasam.job();
Ali.job();
Hamza.job();
Console.ReadKey();
}
}
}


•┈┈┈•❈••✦✾✦••❈•┈┈┈•
❥➺┊ @barmaja_Csharp
•┈┈┈•❈••✦✾✦••❈•┈┈┈•


إ₰...Output....₰❥

I work, I am a teacher
I am an employee
I am an engineer
السلام عليكم
هل تعرف ما هي تقنية Entity Framwork في الـ #C ...؟
وهل سبق أن استخدمتها في أحد مشاريعك بلغة #C ...؟ هذا ما سنتحدث عنه بعد اسطتلاع أراءكم ..
Anonymous Poll
20%
Yes
80%
No
إ₰...👨🏻‍💻معلومات👩🏻‍💻...₰❥

مقدمة للتعرف على Entity Framework



نتحدث اليوم عن تقنية Entity Framework
وهي تقنية حديثة موجهه للتعامل مع قواعد البيانات في بيئة الـ Visual Studio و العديد من البيئات الحديثة التي تدعم تطبيقات قواعد البيانات .
فإذا كنت من المهتمين في برمجة تطبيقات قواعد البيانات فأنصحك بمتابعة هذه المقالة و التعرف على الـ Entity Framewrok .


يعد أطار العمل Entity Framework إحدى الطرق المضمنه في تقنية ADO.NET و التي تسمح بالتعامل مع البيانات في الوضع المنفصل Data Adapter ، فهذه التقنية هي شبيهه بالـ Dataset .

و من خلال الـ Entity Framework لم نعد مرغمين على استخدام الـ Dataset حكراً ، فقد اصبح باليد اليوم الاختيار بين عدة تقنيات منها :
- Dataset ,
- Entity Framework ,
- LINQtoSQL ,
وغيرها من التقنيات التي تظهر يوما بعد يوم . ومن منطلق المعرفة و حب الاطلاع و التعلم ، يتوجب علينا التعرف على هذه التقنية .
👇🏻👇🏻👇🏻👇🏻



•┈┈┈•❈••✦✾✦••❈•┈┈┈•
❥➺┊ @barmaja_Csharp
•┈┈┈•❈••✦✾✦••❈•┈┈┈•
إ₰...👨🏻‍💻information👩🏻‍💻...₰❥

تقنية الـ Entity Framework

تقوم هذه التقنية بتغليف جداول قاعدة البيانات بفئات. Class تتضمن طرق Function وخصائص properties تمثل كائنات قاعدة البيانات Table.

بمعنى لو كان لديك جدول بالإسم Persons و فيه الحقول التـاليه :
Person_ID,
First_Name,
Last_Name,…etc

فإن هذه التقنية ستقوم بتوليد فئة Class بالإسم Persons يحتوي على Column بنفس اسم Column الموجودة في جدول الـ Persons الذي في قاعدة البيانات.

بإختصار .. ، تقوم هذه التقنية بإنشاء نموذج Model لكائنات قاعدة البيانات ، موفرة عليك بذلك الكثير من الجهد و الكثير من الاسطر البرمجية .. 👍🏻

🌹😊🌹


•┈┈┈•❈••✦✾✦••❈•┈┈┈•
❥➺┊ @barmaja_Csharp
•┈┈┈•❈••✦✾✦••❈•┈┈┈•
إ₰...👨🏻‍💻information👩🏻‍💻...₰❥


مرفق إليكم شرح بسيط " بالصور " عن طريقة إنشاء نسخة من Entity Framework للتعامل مع قواعد البيانات في الـ #C
👇🏻👇🏻👇🏻

•┈┈┈•❈••✦✾✦••❈•┈┈┈•
❥➺┊ @barmaja_Csharp
•┈┈┈•❈••✦✾✦••❈•┈┈┈•
إ₰...👨🏻‍💻CODE👩🏻‍💻...₰❥

طبعاً الشرح السابق تم على قاعدة بيانات موجودة مسبقاً في sql server

الأن بنشرح كيف يتم التعامل مع قاعدة البيانات برمجياً في الـ Entity Framework

•┈┈┈•❈••✦✾✦••❈•┈┈┈•
❥➺┊ @barmaja_Csharp
•┈┈┈•❈••✦✾✦••❈•┈┈┈•
إ₰...👨🏻‍💻CODE👩🏻‍💻...₰❥


كود إضافة البيانات الى جدول person كمثال

1- إنشاء obj من النسخة التي عملناها لقاعدة البيانات

mynewDataBaseEntities1 dbs = new mynewDataBaseEntities1();


private void btnSave_Click(object sender, EventArgs e)
{

Person Per1 = new Person ();

لاحظ انك اذا اردت الوصول الى اعمدة في جدول ما يجب عليك إنشاء object من هذا الجدول بعد ذلك يمكنك الوصول الى الاعمدة وإسناد القيم اليها


Per1.Id = Convert.ToInt16(txtper_ID.Text);
Per1.PerName = txtperName.Text;
Pre1.salary = Convert.ToInt16(txtPerSal.Text);

في الاخير اجراء التغييرات على قاعدة البيانات واضافة البيانات الجديدة

dbs.Person.Add(Per1);
dbs.SaveChanges();

}


•┈┈┈•❈••✦✾✦••❈•┈┈┈•
❥➺┊ @barmaja_Csharp
•┈┈┈•❈••✦✾✦••❈•┈┈┈•
إ₰...👨🏻‍💻CODE👩🏻‍💻...₰❥

الان لكي تسترجع البيانات من قاعدة البيانات الى DataGridView

private void GetData()
{

var data = dbs.Person.ToList();
dataGridView1.Rows.Clear();
foreach (var item in data)
{
object[] obj = new object[]
{
item.Id,
item.PerName,
item.salary,

};
dataGridView1.Rows.Add(obj);
}
}


•┈┈┈•❈••✦✾✦••❈•┈┈┈•
❥➺┊ @barmaja_Csharp
•┈┈┈•❈••✦✾✦••❈•┈┈┈•
إ₰...👨🏻‍💻CODE👩🏻‍💻...₰❥


كود الحذف

private void btnDelete_Click(object sender, EventArgs e)
{
Person per1 = new Person();
Per1 = dbs.Person.Where(em => em.PerName == txtPerName.Text).First();
dbs.Person.Remove(Per1);
dbs.SaveChanges();
MessageBox.Show("تم الحذف", "Delete");
GetData();

}

•┈┈┈•❈••✦✾✦••❈•┈┈┈•
❥➺┊ @barmaja_Csharp
•┈┈┈•❈••✦✾✦••❈•┈┈┈•
إ₰...👨🏻‍💻CODE👩🏻‍💻...₰❥


كود التعديل

private void btnUpdate_Click(object sender, EventArgs e)
{
Person Per1 = new Person();
try
{
Per1 = dbs.Person.Where(em => em.PerName == txtSearch.Text).First();
Per1.perName = textBox1.Text;
dbs.SaveChanges();
MessageBox.Show(" تم التعديل بنجاح ");
GetData();
}
catch (Exception)
{

MessageBox.Show("not found");
}
}

•┈┈┈•❈••✦✾✦••❈•┈┈┈•
❥➺┊ @barmaja_Csharp
•┈┈┈•❈••✦✾✦••❈•┈┈┈•
2024/05/16 19:15:58
Back to Top
HTML Embed Code: