ورود

View Full Version : تفاوت حدول همراه با s و غیر sدر linq



qqq2qqq
یک شنبه 24 مرداد 1389, 11:37 صبح
سلام
می خواستم بدونم چرا در linq به جداول یه s اضافه می شه و این اضافه شدن به چه معناست و چه مفهومی داره؟

مهدی فرزاد
یک شنبه 24 مرداد 1389, 14:04 عصر
سلام
براي توضيح اين مطلب مجددا ابتدا توضيح سئوال پست قبلي شما رو بايد تكرار كنم و در ادامه به جواب اين سئوال شما خواهيم رسيد

براي ارتباط با جداول موجود در پايگاه داده SQL مي بايست يك كلاس واسط ساخته شود(توضيح آن مفصل است)

مثلا


[Table ( Name =("Personal")]
public partial class Personal
{
كد هاي كلاس
}


سپس

براي درج ، حذف ، ويرايش و جستجو با استفاده از Linq بر روي جداول پايگاه داده SQL مي بايست يك كلاس فرزند ايجاد نمود كه اين كلاس فرزند خصوصيات خود را از كلاس DataContext به ارث مي برد
كلاس DataContext مسئوليت تراكنش و همچنين ارتباط با پايگاه داده هاي ارتباطي همانند SQL در LINQ را بر عهده دارد
مثلا


Public partial calss MyClass : DataContext
{
public string cn = "كانكشن استرينگ";
Public Tabel<Personal> Personals;
public MyClass (string cn) : base(cn) { }
}

زماني كه شما با استفاده از LINQ To SQL ايجاد ارتباط با پايگاه داده خود مي كنيد اين كلاس فرزند به صورت اتو ماتيك ايجاد ميشود ولي در روش ايجاد ازتباط به صورت دستي ،، شما بايد خودتان اين كلاس را ايجاد كنيد

در اين كلاس فرزند شما بايد از كلاس <>Table يك شئ ايجاد كنيد و هر نامي ميتوانيد براي آن بگذاريد و در <> بايد نام كلاسي را كه براي جدول مربوطه در كلاس واسط ايجاد كرده ايد را بنويسيد

مثلا

Public Tabel<Personal> prs;

زماني كه شما با استفاده از LINQ To SQL ايجاد ارتباط با پايگاه داده خود مي كنيد اين كلاس
<>Table به صورت اتوماتيك ايجاد شده و براي اينكه تداخلي با نام كلاسي كه براي جدول مربوطه در كلاس واسط ايجاد كرده نكند با يك حرف s در انتها، آن را نام گذاري ميكند

Public Tabel<Personal> Personals;

اين نام كه مشابه نام جدول شما هست و يك S اضافه دارد در حقيقت نام شي ساخته شده از كلاس <>Table است و آنهايي كه s ندارند نام كلاسي هست كه براي جدول مربوطه در كلاس واسط ايجاد كرده ايد
كه در روش استفاده از LINQ To SQL به صورت اتوماتكيك هم نام جداول بانك اطلاعاتي شما هستند
موفق باشد