الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

Anonymous Types In LINQ

بدأه D a r K T o u c h في 23 أكتوبر 2010 · 0 رد · 369 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1

Anonymous Types

نتابع الحديث عن الـ LINQ والدرس يتكلم عن Anonymous Types احدى المفيدة في الـ LINQ بصراحة انا بتكلم عن الخاصية بـ ما فهمتة , بمعنى اخر مفهومي الخاص

عندما نعمل استعلام بـ LINQ لنفرض الى جدول ما وعندما يتم عرض النتيجة فانة يعرض جميع الحقول في الجدول , لربما نحن نريد فقط حقول معينة هنا يأتي احد ادور الـ Anonymous Types , لنأخد مثال للتوضيح اكثر :

في البداية لنعمل جدول خاص بـ Department

وهذه حقولة

post-224629-086461100 1287863034_thumb.j

وانا مليت الجدول بـ بيانات اتمنى نمليها كلنا مثل الشيئ لنكون متابعين مع المثال

post-224629-024972600 1287863052_thumb.j

في البداية نكتب هذا الاستعلام

ملاحظة سوف نضع GridView ونكتب هذا الاستعلام في الحدث Page_Load

        var Grid = from c in db.Departments
                   select c;
        GridView1.DataSource = Grid;
        GridView1.DataBind();

راح نلاحظ انه يعرض جميع الحقول حتى لو كان بشرط بعد راح يظهر لنا الحقلين الموجودين DepID و DepName

لنفرض اننا نريد فقط الحقل الثاني هنا سوف نستخدم الـ Anonymous Types

لنرى المثال:

        var Grid = from c in db.Departments
                   select new
                   {
                       c.DepName
                   };
        GridView1.DataSource = Grid;
        GridView1.DataBind();

استخدمت new وبعدها كتبت اسم حقل الاسم فقط ولو نلاحظ النتيجة سوف نلاحظ انه يتم عرض فقط حقل الاسم,

نأتي الان الى دور اخر للـ Anonymous Types لو نلاحظ اخر مثالي ونلقي نظرة على اعلى الـ Grid View والمقصد الـ Header راح نلاحظ اسم الجدول كما هو صحيح ؟؟

لنفرض انا نريد عرض هذه الـ Grid على المستخدم , طبعا هو لا يعنيه اسم حقول الجدول ,, هنا يأتي الدور للـ Anonymous Types , لنتابع المثال :

نعمل تغير بسيط على المثال السابق

        var Grid = from c in db.Departments
                   select new
                   {
                       Name = c.DepName
                   };
        GridView1.DataSource = Grid;
        GridView1.DataBind();

عرفنا object اسمة Name , بمعنى هو الذي سوف يأخد بيانات الـ DepName

القي نظرة على الـ Grid راح تلاحظ ان الاسم تغير فعلا .

الى الان عرفنا دورين من ادوار Anonymous Types

لنتعمق قليلا بطريقة اخرى

ليس فقط عند كتابة اسم قبل اسم الحقل يستخدم فقط الى الـ Grid , هو object استطيع استخدامة مثل المثال :

        var AnonDep = from c in db.Departments
                      select new
                      {
                          Name = "ID: " + c.DepID + " - " + " Department: " + c.DepName
                      };
        foreach (var n in AnonDep)
        {
            Label_result.Text +=  n.Name + "<br />";
        }

بكلامي الشخصي : Name اصبح كانه متغير يحمل كل المعلومات الي نريدها وبعدها يتم عرضها

في النهاية اخواني Anonymous Types تستخدم بطرق مختلفة لكن كلها في النهاية مثل النتيجة , وبصراحة المكتوب في في الاعلى ليس كل شيئ لان متأكد توجد اشياء انا لا اعلمها, لكن الاهم اني حاولت ايصال الفكرة عن Anonymous Types

لنسميها البداية , واريد ان ابقي جزئ لك عزيزي القارئ لأكتشافة. الاهم الان انك لو رأيت استعلام على الشبكة تستطيع تحليل الاستعلام واذا كانت توجد اضافة فأهلا وسهلا بها .

واتمنى , اتمنى ان تكون الفكرة وصلت بشكل سليم

احفظ الجدول عندك لان راح استخدمة في درس قادم ان شاء الله

روابط:

هذا رابط مفيد بصراحة انا فهمت منه اشياء كثيرة , واجبي ان اضعة لكم وان شاء الله تستفيدون منه

New "Orcas" Language Feature: Anonymous Types

-----------

دمتم سالمين.

المرفقات
2.JPG3.JPG

تم تعديل هذه المشاركة بواسطة D a r K T o u c h في 23 أكتوبر 2010 في 23:06

1

My Latest

Hello Entity Framework Code First

--------------------

مواضيع مشابهة