PDA

View Full Version : حرفه ای: Linq To SQL چیست و چرا ایجاد شده است . آموزشی



nosrati1363
چهارشنبه 24 آذر 1389, 00:01 صبح
سلام به همه
مدتی پیش کار با Linq To SQL رو یاد گرفتم و میخوام سعی کنم برای دوستانی که با اون آشنا نیستند قدم خیری بردارم . لطفا در کامل شدن تاپیک من رو یاری کنید
( در اینجا منظور از LINQ همان Linq To SQL است ) Linq برای دسترسی به پایگاه Sql طراحی شده و از گرامر Linq بکار رفته در آرایه ها استفاده میکند . جایگزین کاملی برای ADO.NET است که البته به صورت درونی از آن استفاده میکند . Linq با دارا بودن حافظه ذخیره سازی موقت (cache) امکان دسترسی سریع به داده ها را فراهم میکند و هزینه آن را کاهش میدهد چون تمام سطر هایی که ایجاد میشوند را cache میکند و به دو روش
1 - با هر بازیابی نیازی به ساخت مجدد سطر ها نیست
2 - با داشتن این شیئ های سطر در حافظه میتوانید بقدر کافی آنها را دستکاری کنید و سپس کل تغییرات را یکباره اعمال کنید
cache نیاز به روشی دارد تا سطر های مجزا را تشخیص دهد . برای همین هر جدول باید یک کلید اصلی داشته باشد
تمام پرسجو های Linq از طریق کلاس DataContext رخ میدهند که کنترل کننده جریان داده مابین پایگاه و کد برنامه است .
گام اول : ابتدا یک برنامه ویندوز ایجاد کنید
گام دوم : پایگاه داده SQL را به پروژه اضافه کنید
گام سوم : Add>New Item>Linq To SQL Classes پس از چند لحظه پنجره Object Relational Designer ظاهر میشود که امکانات زیادی را برای شما به ارمغان خواهد آورد . بعد از Save کردن این پنجره میتوانید از ادامه کار بهره مند شوید در غیر این صورت نمیتوانید
ادامه دارد ...

ali_najari
چهارشنبه 24 آذر 1389, 00:32 صبح
دوست عزیز اگر پایگاه داده توی خود SQLServer باشه چی؟

nosrati1363
چهارشنبه 24 آذر 1389, 15:50 عصر
دوست من "ALI" نفهمیدم منظورت چیه ؟ همه پایگاه های داده در SQL Server هستند . اگه بخوای روی پایگاهی که در برنامه موجود نیست مانور کنی باز هم میتونی از Linq استفاده کنی مثل SSMS

ادامه پست 1
در ادامه گام سوم از پنجره DataBase Explorer گره پایگاه داده را بست داده گره جداول را هم بست میدهیم و جداول مورد نظر را به پنجره Object Relational Designer یا ORD دراگ میکنیم . اگر پاسخ دیالوگ را Yes بدهید یک نمونه از پایگاه داده در پروژه شما کپی میشود . حالا ORD را Save کنید .
پروژه هم اکنون به پایگاه داده متصل است و نیاز به GUI دارد برای نمایش و تغییرات در اطلاعات
گام چهارم : برای استفاده از کلاس Linq در مقید سازی ( ایجاد ارتباط بین پایگاه داده و فرم ) ابتدا باید آنرا به عنوان یک منبع داده اضافه کنیم . Data>Add New Data Source چون Linq شیئی است که به ما جداول را ارائه میدهد در Wizard گزینه Object را انتخاب میکنیم . سپس Next . نمای درختی را در صفحه بعد گسترش داده و
ProjectName>NameSpase>TableName نام پروژه ، فضای نامی که اگر خود آنرا تغییر نداده باشید همان نام پروژه است و نام جدول اصلی پایگاه داده . Next . و در نهایت Finish . حالا جدول شما به عنوان یک منبع داده مطرح است و میتواند توسط مقید سازی به کار گرفته شود .
گام پنجم : در پنجره Data Source روی نام جدول کلیک کرده و گزینه Data Grid View را انتخاب کنید ( فرم برنامه را در نمای Design باز کنید ) و آنرا به داخل فرم دراگ کنید .
گام ششم : مرتبط کردن DataContext (مثلا اگر نام پایگاه داده Book باشد بعد از گام سوم کلاسی به نام BookDataContext در پروژه ایجاد میشود که زیر مجموعه ای از Linq میباشد . در اینجا فرض میکنیم نام پایگاه داده قبل از DataContext آمده است ) با BindingSource ( در اینجا هم نام جدولی که به عنوان منبع داده به DataSource معرفی کردیم قبل از BindingSource می آید )
در Load فرم این کد را وارد کنید و دکمه Save را Enable کرده در رویداد کلیک آنهم کد زیر را وارد کنید
(پایگاه داده Book و جدول Author )





Private DataBase As New BookDataContext
Private Sub Form_Load() ...
AuthorBindingSource.DataSource = _
From author In DataBase.Authors _
Order By author.AuthorID _
Select author
End Sub
Private Sub AuthorBindingNavigatorSaveItem_Click() ...
Validate()
AuthorBindingSource.EndEdit()
DataBase.SubmitChanges()
End Sub


Linq To SQL به همین سادگی امکان فراخوانی و دستکاری و ذخیره را به شما میدهد . البته این روش برای پروژه های بزرگ تر قابل استفاده نیست و نیاز به کد نویسی بیشتری دارید اما کار بسیار ساده تر شده و با کمی گشت و گذار این را بهتر متوجه میشودید . نام ستون ها به صورت یک خاصیت در ادامه نام جدول میآیند و برای کار با پایگاه های بزرگ این امکان بی نظیری است .
ادامه دارد ...