إ₰...👨🏻💻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 كوسيط.
#تعدد_الأشكال 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 كوسيط.
إ₰...👨🏻💻CODE👩🏻💻...₰❥
#الفئات_المجردة abstract
الفئات المجردة لا يمكن استنساخ كائنات منها
لكن يبقى لك حرية استنساخ كائنات من فئات وارثة منها فلهذه الفئات إمكانية الوراثة...
#الفئات_المغلقة sealed
عكس الفئات المجردة تماما فهي فئات لا يمكن الوراثة منها مطلقا...
#الوظائف_الوهمية virtual Methods
لجعل طريقة ما وهمية استخدم الكلمة virtual عند التصريح عنها.
وللتعديل عليها في الفئات الوارثة استخدم إحدى الكلمتين new أو override.
وللنفوذ لطرق الفئة الرئيسية يمكن استخدام الكلمة base.
فكما أن الكلمة this تمثل الفئة الحالية، فإن الكلمة base تمثل الفئة الرئيسية.
•┈┈┈•❈••✦✾✦••❈•┈┈┈•
❥➺┊ @barmaja_Csharp↷
•┈┈┈•❈••✦✾✦••❈•┈┈┈•
#الفئات_المجردة abstract
الفئات المجردة لا يمكن استنساخ كائنات منها
لكن يبقى لك حرية استنساخ كائنات من فئات وارثة منها فلهذه الفئات إمكانية الوراثة...
#الفئات_المغلقة sealed
عكس الفئات المجردة تماما فهي فئات لا يمكن الوراثة منها مطلقا...
#الوظائف_الوهمية virtual Methods
لجعل طريقة ما وهمية استخدم الكلمة virtual عند التصريح عنها.
وللتعديل عليها في الفئات الوارثة استخدم إحدى الكلمتين new أو override.
وللنفوذ لطرق الفئة الرئيسية يمكن استخدام الكلمة base.
فكما أن الكلمة this تمثل الفئة الحالية، فإن الكلمة base تمثل الفئة الرئيسية.
•┈┈┈•❈••✦✾✦••❈•┈┈┈•
❥➺┊ @barmaja_Csharp↷
•┈┈┈•❈••✦✾✦••❈•┈┈┈•
إ₰...👨🏻💻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
مثال بسيط يوضح مفهوم الدوال الوهمية 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 ...؟ هذا ما سنتحدث عنه بعد اسطتلاع أراءكم ..
هل تعرف ما هي تقنية 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↷
•┈┈┈•❈••✦✾✦••❈•┈┈┈•
مقدمة للتعرف على 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↷
•┈┈┈•❈••✦✾✦••❈•┈┈┈•
تقنية الـ 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↷
•┈┈┈•❈••✦✾✦••❈•┈┈┈•
مرفق إليكم شرح بسيط " بالصور " عن طريقة إنشاء نسخة من Entity Framework للتعامل مع قواعد البيانات في الـ #C
👇🏻👇🏻👇🏻
•┈┈┈•❈••✦✾✦••❈•┈┈┈•
❥➺┊ @barmaja_Csharp↷
•┈┈┈•❈••✦✾✦••❈•┈┈┈•
إ₰...👨🏻💻CODE👩🏻💻...₰❥
طبعاً الشرح السابق تم على قاعدة بيانات موجودة مسبقاً في sql server
الأن بنشرح كيف يتم التعامل مع قاعدة البيانات برمجياً في الـ Entity Framework
•┈┈┈•❈••✦✾✦••❈•┈┈┈•
❥➺┊ @barmaja_Csharp↷
•┈┈┈•❈••✦✾✦••❈•┈┈┈•
طبعاً الشرح السابق تم على قاعدة بيانات موجودة مسبقاً في 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↷
•┈┈┈•❈••✦✾✦••❈•┈┈┈•
كود إضافة البيانات الى جدول 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↷
•┈┈┈•❈••✦✾✦••❈•┈┈┈•
الان لكي تسترجع البيانات من قاعدة البيانات الى 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↷
•┈┈┈•❈••✦✾✦••❈•┈┈┈•
كود الحذف
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↷
•┈┈┈•❈••✦✾✦••❈•┈┈┈•
كود التعديل
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↷
•┈┈┈•❈••✦✾✦••❈•┈┈┈•