امتیاز موضوع:
  • 4 رأی - میانگین امتیازات: 4.5
  • 1
  • 2
  • 3
  • 4
  • 5
LINQ to SQL از صفر تا جایی که بتونیم
نویسنده پیام
HoseinVig آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 1,165
موضوع‌ها: 97
تاریخ عضویت: مرداد ۱۳۸۵

تشکرها : 4768
( 2464 تشکر در 677 ارسال )
ارسال: #1
LINQ to SQL از صفر تا جایی که بتونیم
بسم الله الرحمن الرحیم
سلام به همه ایرانویجی های عزیز و شما کاربران مهمان
من قصد دارم در این تاپیک، سری آموزش های Linq رو برای شما دوستان بذارم و امیدوارم براتون مفید باشه. ضمناً سعی می کنم خیلی کتابی ننویسم و مستقیم اصل مطلب رو بگم، فقط قبلش چند تا مطلب هست که باید بدونید.

(فقط یه توضیح بدم، من این یک هفته که خونه هستم در خدمتم که آموزش ها رو ادامه بدم اما از مهر شاید نتونم زیاد سر بزنم)
قسمت اول آموزش LINQ to SQL
اول بگیم Linq (تلفظ کنید لینک) چیه؟
linq تکنولوژی نسبتا جدید مایکروسافت بود که همراه با مجموعه دات نت 2008 عرضه شد. linq مخفف (Language Integrated Query)می باشد. کارش چیه؟ خب ما هرکجا که داده تجمع شده داشته باشیم می تونیم از linq برای گرفتن query کمک بگیریم، حالا این تجمع داده می تونه database یا یک آرایه یا یک مجموعه کالکشن یا مجموعه آبجکت و هر چیزی که فکرشو کنید باشه. بحث مورد نظر ما database است که اصتلاحاً به اون Linq To SQL می گویند.

Linq To SQL :

خب اول توضیحاتیو می دم، بعد می ریم سر اصل مطلب، با linq to sql می تونیم تمام مدیریتی رو که قبلا با ado.net بر روی بانک های اطلاعاتی انجام می دادیم، به صورت خیلی خیلی راحت و آب خوردن با سرعت بیشتر انجام بدیم، چون دیگه ما کاری به کانکشن ها و غیره نداریم و فقط به linq می گیم که چی می خواهیم و اون همه کارها رو بصورت بهینه برای ما انجام می ده.
**: درحقیقت linq to sql یک لایه بین بانک اطلاعاتی و لایه application ایجاد می کنه و ما از طریقه linq با بانک اطلاعاتیمون رابطه بر قرار می کنیم(حتما براتون سؤال پیش می آد که اگه لایه اضافه شده پس باید سرعت پایین بیاد، اما اگه گفتی چرا سرعتش بیشتر می شه؟ جواب این سؤالتونو جلوتر می گیرید)
**: برای استفاده از linq to sql شما می تونید از تمام زبان های دات نت 2008 به بعد استفاده کنید (vb.net,C#.net)
**:linq to sql کل بانک شما را به یک کلاس تبدیل کرده، table های شما مانند زیر کلاس برای کلاس دیتابیس هستند و store procedure ها مانند متد های این کلاس عمل می کنند.
**:اگه زبان برنامه نویسی بلدی LINQ بلدی پس دیگه نمی خواد خودتو درگیر ADO.net و دردسرهای اون بکنی.
من برای این آموزش فرض می کنم شما با database آشنایی دارید و با دستورات sql آشنایین.

خب دیگه بهتر بریم سر اصل مطلب :
من زبان رو C# انتخاب کردم. بانک اطلاعاتیمم sql express است، شما می تونید از زبان های دیگه یا از بانک های دیگه مثل access,sql server2000,sql server 2005,oracle استفاده کنید. از لحاظ نحوه استفاده هم، هیچ تفاوتی با هم ندارند.
اول از همه بانک خود را ایجاد کنید، جدول ها و فیلد ها را تعریف کنید.
حالا پروژه جدیدی در دات نت 2008 ایجاد کنید، اگر server explorer را نمی بینید از منوی view آن را به نمایش در بیاورید، بانک من sql express است و قبلا ایجادش کردم، اگر شما از sql server استفاده می کنید مراحل زیر را برای اضافه کردن بانک به server explorer طی کنید:
1)راست کلیک بر روی Data Connection و انتخاب add Connection برای معرفی بانکتون
2)نوع و مسیر بانکتون رو مشخص کنید
عکس 1_1
[تصویر:  attachment.php?aid=3850]
حالا بانکمون کنار دستومنه:
عکس 1_2
[تصویر:  attachment.php?aid=3851]
حالا می خواهیم به وسیله Linq to SQL چهار عمل اصلی را روی بانکمون پیاده سازی کنیم :
برای این کار باید ....(به قسمت دوم آموزش توجه کنید)
منبع :خودم
کپی برداری با ذکر منبع:
Iranvig.com
Forum.iranled.com
محمد حسین منصوران
بلا مانع می باشد
اگر سوالی بود در خدمتم ...
Mail:HoseinVig@yahoo.com


در ضمن برای شروع تاپیک نظرات شما خیلی مهمه
با تشکر


فایل‌(های) پیوست شده بندانگشتی (ها)
       

(آخرین ویرایش در این ارسال: ۲۴-شهریور-۱۳۸۸, ۱۰:۳۷:۴۳، توسط far_222000.)
۲۲-شهریور-۱۳۸۸, ۱۷:۴۲:۲۱
ارسال‌ها
پاسخ
تشکر شده توسط : pashmaloo, t3r!p3000, hamed_Arfaee, CRazYFULL, mahdi_gh, ajlajlajl, far_222000, alaska, sita_rampail, Payman62, yousefzade, talal, poorani, sav68, sadazar, zozi, asadim, mazi_v, amirsajjadi, bia2varavi, majid_labbeiky, setarehnarges, ترانسپورتر, Majid_Ebru, mojtabamalaekeh, saeed_nami, Loyal, WorldG
HoseinVig آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 1,165
موضوع‌ها: 97
تاریخ عضویت: مرداد ۱۳۸۵

تشکرها : 4768
( 2464 تشکر در 677 ارسال )
ارسال: #2
RE: LINQ to SQL از صفر تا جایی که بتونیم
قسمت دوم آموزش LINQ to SQL:
قبل از 4عمل اصلی باید با دستورات LINQ آشنا بشید.
چیزی که باید بدونید عملگر های پر کاربردیه که توی LINQ استفاده میشه که به شرح زیر میباشد:
From و In : برای واکشی مجموعه ای از اطلاعات از يک مجموعه بزرگتر به کار می رود . اين عملگر به عنوان يکی از عملگرهای اصلی در LINQ استفاده می شود .
WHERE : برای اعمال محدوديت روی مجموعه ای است که از مجموعه اصلی بدست می آيد .
Select : برای انتخاب دنباله اطلاعاتی که باید واکش شود
Order by : برای مرتب سازی مجموعه واکش شده بکار می رود .
Group By: برای ساخت زير مجموعه ای که بر مبنای يک مقدار آن گروه بندی شده باشد استفاده می شود .
Count/Sum/Min/Max و Average برای کارهايی با مفهومی که از نامشان برداشت می شود استفاده می شوند .
Take : برای بازگرداندن n عضو اول از مجموعه به کار می رود .
Skip : برای عبور و در نظر نگرفتن n عضو اول از مجموعه به کار می رود .
Contains : در شرط ها به منظور تاکيد بر وجود يک متن در يک فيلد به کار می رود مانند Like در SQL .
شکل کلی یک query در LINQ بصورت زیر است:
کد:
From item in Container Where Boolean Expression Select Item
خوب دقت کنید این در حالیه که یه query اس کیو ال به شکل زیر است و با دستور بالا برابری میکنه:
کد:
Select item from container where Boolean Expression
همانطور که میبینید شباهت بین اس کیو ال و LINQ وجود داره پس شما همین الان LINQ بلد هستید.
برتری هایی که LINQ در برابر ADO.net داره :
1)
** در ADO.net ما دستورات اس کیو ال را در غالب یه رشته به بانکمون میفرستادیم.و اگه دستور خطلا داشت برناممون هنگام اجرا قطع میشد...
** اما در LINQ دستورات ما بصورت syntax زبان برنامه نویسیمونه یعنی خطلا را در همون زمان نوشتن دستورات اعلام میکنه .
2)
**در ADO.net با insert یا update کردن هر رکورد عمل نوشته در بانک انجام میشود و شما حساب کنید اگر تعداد رکورد هاتون چند صدتا باشه و بخواهید همه اونارو ویرایش کنید به تعداد رکورد ها باید عمل درج در فایل انجام شود که برای محاسبه زمانش باید seektime هاردتونو ضربدر تعداد رکوردها بکنید.
** اما در LING شما هر تغییرات ، insert ها و delete ها را ابتدا در حافظه اصلی انجام میدهید و سپس با استفاده یکی از متد های LINQ تغییرات را در فایل بانکتون اعمال میکنید به عبارتی یک seektime طول میکشد.
4)سهولت در مدیریت بانک های اطلاعاتی
خب توی قسمت اول آموزش بانکمون رو ساختیم و به server explorer پروژمون اضافه کردیم ، حالا میخاهیم چهار عمل اصلی یعنی insert,update,delete,select را روی بانکمون انجام بدیم .
برای اینکار به بخش سوم آموزش دقت کنید Biggrin
سوالی بود بپرسین!!
منبع : خودم
با تشکر

(آخرین ویرایش در این ارسال: ۲۲-شهریور-۱۳۸۸, ۲۱:۰۸:۴۴، توسط HoseinVig.)
۲۲-شهریور-۱۳۸۸, ۲۰:۵۷:۴۹
ارسال‌ها
پاسخ
تشکر شده توسط : CRazYFULL, t3r!p3000, mahdi_gh, lord_viper, far_222000, ajlajlajl, alaska, sita_rampail, Payman62, hamed_Arfaee, yousefzade, talal, poorani, Scorpion, sav68, amirsajjadi, bia2varavi, majid_labbeiky, mahvand74, ترانسپورتر, mojtabamalaekeh, saeed_nami, Loyal
HoseinVig آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 1,165
موضوع‌ها: 97
تاریخ عضویت: مرداد ۱۳۸۵

تشکرها : 4768
( 2464 تشکر در 677 ارسال )
ارسال: #3
RE: LINQ to SQL از صفر تا جایی که بتونیم
انگار LINQ to SQL طرفدار نداره ها؟ یعنی ما جمع کنیم کازه کوزمونو ؟ Biggrin
باور کنین اینو یاد بگیرین نرید سراغ روش سنتی و اون ADO.net پیر زن ، من اصلا ADO.net یادم رفته دیگه از بس LINQ شیرین و آسونه...

۲۲-شهریور-۱۳۸۸, ۲۳:۳۵:۰۸
ارسال‌ها
پاسخ
تشکر شده توسط : t3r!p3000, mahdi_gh, alaska, yousefzade, talal, poorani, sav68, amirsajjadi, majid_labbeiky, mahvand74, saeed_nami, Loyal
ajlajlajl آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 2,192
موضوع‌ها: 70
تاریخ عضویت: مهر ۱۳۸۴

تشکرها : 932
( 2618 تشکر در 1020 ارسال )
ارسال: #4
RE: LINQ to SQL از صفر تا جایی که بتونیم
نه بابا. تو بگو. من از دیروز تا حالا بازش کردم که سر فرصت بخونم Biggrin

میزان رای دشمن است!
[تصویر:  cff100.png]
۲۳-شهریور-۱۳۸۸, ۱۴:۱۹:۱۶
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : HoseinVig, alaska, talal, poorani, majid_labbeiky
far_222000 آفلاین
مدير بخش ديتابيس
*****

ارسال‌ها: 954
موضوع‌ها: 68
تاریخ عضویت: شهریور ۱۳۸۴

تشکرها : 468
( 1243 تشکر در 421 ارسال )
ارسال: #5
RE: LINQ to SQL از صفر تا جایی که بتونیم
حسین جان، دستت درد نکنه که این آموزش خوب رو شروع کردی.
جا داشت من اولین نفری بودم که از پستات تشکر می کرد ولی متأسفانه تهران نبودم و به اینترنت دسترسی نداشتم.
متنی که نوشتی خیلی عالیه ولی(با عرض شرمندگی) پر از اشکال نگارشی و املاییه.
بعضی جاها برای تأکید، سایز یه متن رو زیاد کردی که باعث می شه چشم خواننده مطالب دیگه رو گم کنه. می تونی با Bold کردن و تغییر رنگ، اهمیت یه موضوع رو بالا ببری.
اگه اجازه بدی، من پست هاتو ویرایش می کنم، البته شاید دوست نداشته باشی اسم کسی زیر پستات بخوره. جوابشو بهم بگو.

خیلی خیلی ممنون از آموزش جدیدی که شروع کردی.

پارک24
مرجع خرید و فروش خودرو
۲۳-شهریور-۱۳۸۸, ۱۶:۵۴:۱۴
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : t3r!p3000, HoseinVig, poorani, majid_labbeiky, Loyal
HoseinVig آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 1,165
موضوع‌ها: 97
تاریخ عضویت: مرداد ۱۳۸۵

تشکرها : 4768
( 2464 تشکر در 677 ارسال )
ارسال: #6
RE: LINQ to SQL از صفر تا جایی که بتونیم
سلام فرید جان اتفاقا قرار بود عذر خواهی بکنم از بچه ها برای این غلط های نگارشی ، والا من بهتر از نمیشم پس اگه لطف کنی زحمتش با شما باشه برای من راحت ترهBiggrin

۲۳-شهریور-۱۳۸۸, ۱۸:۰۹:۰۳
ارسال‌ها
پاسخ
تشکر شده توسط : t3r!p3000, yousefzade, talal, poorani, majid_labbeiky, WorldG
HoseinVig آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 1,165
موضوع‌ها: 97
تاریخ عضویت: مرداد ۱۳۸۵

تشکرها : 4768
( 2464 تشکر در 677 ارسال )
ارسال: #7
RE: LINQ to SQL از صفر تا جایی که بتونیم
بسم الله الرحمن الرحیم
قسمت سوم آموزش LINQ to SQL:
پیش نهاد میکنم یه پروژه باز کنید و مثالمون را پله پله با هم جلو بریم ، من هم سعی میکنم بحث که به جای خوبی رسید هم تا اونجارو PDF کنم هم مثالمون رو براتون آپلود کنم.
خب توی قسمت اول آموزش بانکمون رو ساختیم و به server explorer پروژمون اضافه کردیم
در قسمت دوم با عملگر های LINQ یه آشنایی کوچیک پیدا کردیم و گفتیم چرا از لینک استفاده میکنیم....
حالا میخاهیم چهار عمل اصلی یعنی insert,update,delete,select را روی بانکمون انجام بدیم .
خب گفتیم که لینک کاری میکنه که بانکمون بشه مثل یک کلاس در دات نت و ما میتونیم به راحتی با اون ارتباط بر قرار کنیم، حالا چجوری این کار رو میکنه اصلا LINQ کجاست؟؟؟
برای مدیریت جدول هایی که در SQL Server (یا هر بانک دیگه)ایجاد کرده ایم در دات نت به آیتم جدیدی به نام LINQ to SQL Classesاحتیاج داریم ، بنا بر این به پروژه خود اضافه میکنیم ( در Solutioan Explorer راست کلیک کرده و از Add گزینه New Item را انتخاب میکنیم ، کلاس LIQ to SQL Classes را انتخاب میکنیم و در کادر پایین نام آن را Bank قرار میدهیم (این نام کاملا اختیاری است))
[تصویر:  attachment.php?aid=3860]
یک آیتم به پروژمون اضافه میشه به نام Bank.dbml خوب هسته مرکزی Linq همیه روی اون دوبار کلیک کنید تا باز بشه ببینیم توش چه خبره... بله همینطور که خودتونم میبینید یک صفحه تخت خالیه که به دو قسمت تقسیم شده که قسمت سمت راست رو بعدا توضیح میدم که ماله stor procedure هاست قسمت دوم هم که الان باهاش کار داریم قسمت سمت چپ هست، حالا از server explorer جداولی که در طول پروژه باهاشون کار داریم رو با درک دراپ میکشیم میندازیم توی این ناحیه مثل شکل زیر:
[تصویر:  attachment.php?aid=3861]
همینطور که میبینید من جدولهای مثال خودمونو کشیدم و انداختم توی LINQ با این کار چند تا اتفاق میافته :
_یک کلاس برای کل بانکتون با نام BankDataContext ایجاد میشه که قسمت اول نام ماله dbml مون هست که از new item اضافه کردیم...
_برای هر جدول و همنام این جداول یک کلاس ایجاد میشه .
_و همنام هر جدول یک زیر کلاس برای کلاس اصلیمون ایجاد میشه (BankDataContext)
حالا همه چیز آماده م ومحیاست تا شما بتونید با دیتابیستون کار کنید.
مواد لازم :
_Datagridview یک عدد
_Button چهار عدد
_Textbox یک عدد
اینارو به فرمتون اضافه کنید.
یک شی از کلاس بانکتون هم یه جایی بصورت public تعریف کنید ، البته میتونید هرجا که خاستین private هم تعریف کنید اونوقت واسه هر عمل یه بار باید تعریف کنید .
کد:
public BankDataContext DataBase = new BankDataContext();
حالا میخایم در جدول Customers یک عمل Insert انجام بدیم ، در کد های مربوط به دکمه insert روند زیرو طی کنید
باید یک شی از نوع جدولمون ایجاد کنیم و در بانک insert کنیم به این شکل:
کد:
DataBase.customers.InsertOnSubmit(new customer { name = "Hosein", adres = "khorramshahr,4rah naghdi,...", tell = "0916000000" });
DataBase.SubmitChanges();
اگه فیلد هاتون زیاد بود میتونید اینجوری insert کنید :
کد:
customer cus = new customer();
cus.name = "Mansouran zadeh";
cus.adres = "abadan,amiri";
cus.tell = "0631444";
DataBase.customers.InsertOnSubmit(cus);
DataBase.SubmitChanges();
یادم رفت بگم متد submitchange میاد اطلاعاتی که تغییر داده شده یا اضافه شده رو در بانکتون ثبت میکنه در واقع شما موقع insert کردن insert شما در حافظه اصلی انجام میشه و زمانی که submitchange() فرا حوانی میشه ثبت واقعی در بانک انجام میگیره
سوالی بود در خدمتم


فایل‌(های) پیوست شده بندانگشتی (ها)
       

(آخرین ویرایش در این ارسال: ۲۳-شهریور-۱۳۸۸, ۱۸:۲۴:۱۰، توسط HoseinVig.)
۲۳-شهریور-۱۳۸۸, ۱۸:۱۷:۲۱
ارسال‌ها
پاسخ
تشکر شده توسط : t3r!p3000, ajlajlajl, alaska, sita_rampail, Payman62, hamed_Arfaee, yousefzade, talal, poorani, sav68, fahimfallahi, amirsajjadi, bia2varavi, majid_labbeiky, mahvand74, belle711, mojtabamalaekeh, saeed_nami, Loyal, WorldG
HoseinVig آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 1,165
موضوع‌ها: 97
تاریخ عضویت: مرداد ۱۳۸۵

تشکرها : 4768
( 2464 تشکر در 677 ارسال )
ارسال: #8
RE: LINQ to SQL از صفر تا جایی که بتونیم
بسم الله الرحمن الرحیم

قسمت چهارم آموزش LINQ to SQL

تا قسمت گذشته رسیدیم به insert کردن در جداولمون
حالا توی این قسمت آموزش قراره select ، update ، delete را توضیح بدیم.
select
من قبلا رکورد های بیشتری در جداولم insert کردم که الان بتونیم select رو انجام بدیم
یه مثال ساده میزنم.
میخواهیم از جدول کالا(kala) رکوردهایی را برگردانیم که نام آنها "panir" و قیمت آنها زیر 2000 تومان است.
کد:
var query1 = from k in DataBase.kalas
where k.name_kala == "panir" && k.gheymat < 2000
select k;
dataGridView1.DataSource = query1;
نتیجه در عکس زیر :
[تصویر:  attachment.php?aid=3869]

توضیح کد: خط اول یک متغیر واریانت تعریف کردیم ، همه شما با این نوع متغیر ها آشنا هستین این نوع داده نوعی است که بعد از مقدار دهی نوع خود را با توجه به محتویات خود تغییر میدهد در اینجا بعد از مقدار دهی به نوع kalas تغییر پیدا میکند یعنی همان ابتدا میتوانستیم این متغیر را از نوع kalas تعریف کنیم . اما هنگامی که میخواهیم دو یا بیشتر جدول را با هم join کنیم حتما باید از var استفاده کنیم .
From k in database.kalas یک متغیر موقتی از نوع جدول کالا ایجاد میکند به نام k . قسمت where که شرط را برسی میکند .قسمت select k هم فیلد هایی را برمیگرداند که به آن میگوییم در اینجا چون فقط k آورده شده است کل رکورد برگردانده میشود.اگر میخواستیم فقط نام کالا را برگردانیم باید مینوشتیم : select k.name_kala
در خط آخر query1 را برابر با datasource دیتاگرید قرار میدهیم تا نتایج را نشان دهد.
Update
حالا میخواهیم رکورد خاصی را ویرایش کنیم.
برای ویرایش باید رکورد مورد نظر را پیدا کنیم(select) سپس روی رکورد پیدا شده تغییرات لازم را اعمال کنیم. بنا بر این کد آن باید شباهت زیادی به Select داشته باشد:
کد:
var query1 = (from k in DataBase.kalas
where k.kala_ID == 1
select k).Single();
query1.gheymat = 2500;
DataBase.SubmitChanges();
.single() تضمین می کند که Q شامل فقط و فقط یک رکورد باشد.
Submitchange هم تغییرات را در بانک اعمال میکند.
برای انتساب کل جدول به دیتا گرید از کد زیر استفاده کردم:
کد:
dataGridView1.DataSource = DataBase.kalas;

نتیجه : پنیر از 1500 به 2500 تغییر کرد چه مغازه دار بی رحمی!! شایدم چه تورمی!!
[تصویر:  attachment.php?aid=3870]
نکته بسیار مهم: برای اینکه جداول قابل تغییر باشد خصوصیت Inheritance Modifier کلاس LINQ را به Sealed تغییر دهید، در غیر این صورت با پیغام خطلا مواجه می شوید.

Delete
برای حذف یک رکورد نیز مانند ویرایش باید ابتدا رکورد مورد نظر را پیدا کنیم ، سپس اقدام به حذف آن بکنیم، بنا بر این :
کد:
var q =(from k in DataBase.kalas
                    where k.kala_ID==int.Parse(textBox1.Text)
                    select k).Single();
            DataBase.kalas.DeleteOnSubmit(q);
            DataBase.SubmitChanges();
کد بالا رکوردی را حذف می کند که شماره کد آن درون تکست باکس نوشته شده است
فکر کنم برای این قسمت کافی باشه
منبع : خودم
بازم اگه سوالی داشتین بپرسین


فایل‌(های) پیوست شده بندانگشتی (ها)
       

(آخرین ویرایش در این ارسال: ۲۵-شهریور-۱۳۸۸, ۲۲:۱۶:۱۲، توسط HoseinVig.)
۲۴-شهریور-۱۳۸۸, ۲۱:۵۰:۳۳
ارسال‌ها
پاسخ
تشکر شده توسط : lord_viper, Payman62, yousefzade, talal, poorani, sav68, alaska, hadi2345, amirsajjadi, bia2varavi, majid_labbeiky, parnian90, saeed_nami, Loyal, WorldG
HoseinVig آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 1,165
موضوع‌ها: 97
تاریخ عضویت: مرداد ۱۳۸۵

تشکرها : 4768
( 2464 تشکر در 677 ارسال )
ارسال: #9
RE: LINQ to SQL از صفر تا جایی که بتونیم
سلام و خسته نباشید به دوستان عزیز
از ابتدا تا اینجارو توی فایل PDF قرار دادم برای راحتی دوستان.(پیوست شماره یک)
مثالی که با همدیگه ساختیم رو میتونید از پیوست شماره 2 دانلود کنید فقط یادتون باشه فایل بانکشو توی دات نت لود کنید .


فایل‌(های) پیوست شده
.rar   LINQ-To-SQL-PDF1--iranvig.om--forum.iranled.com.rar (اندازه: 396.66 KB / تعداد دفعات دریافت: 918)
.rar   LinqToSql1--Application.rar (اندازه: 192.52 KB / تعداد دفعات دریافت: 651)

(آخرین ویرایش در این ارسال: ۲۴-شهریور-۱۳۸۸, ۲۳:۵۹:۱۰، توسط HoseinVig.)
۲۴-شهریور-۱۳۸۸, ۲۳:۳۷:۵۱
ارسال‌ها
پاسخ
تشکر شده توسط : Payman62, hamed_Arfaee, yousefzade, talal, poorani, sav68, alaska, amirsajjadi, bia2varavi, majid_labbeiky, mahvand74, belle711, saeed_nami
Payman62 آفلاین
مدیر بخش ویژوال بیسیک
*****

ارسال‌ها: 2,273
موضوع‌ها: 149
تاریخ عضویت: اسفند ۱۳۸۴

تشکرها : 1308
( 3661 تشکر در 942 ارسال )
ارسال: #10
RE: LINQ to SQL از صفر تا جایی که بتونیم
سلام.
دستت درد نکنه حسین جان. linq تکنولوژی خیلی جالب و مفیدیه. همه جداول و توابع و امکانات دیتابیس رو برات لیست میکنه. از شر مشکلات ارتباط برنامه با دیتابیس راحت میشیم.
آدم حس میکنه داره یا اپلیکیشن معمولی مینویسه.
چند تا سوال.
چرا اگه تو جدولی کلید اصلی نداشته باشیم رکوردی درج نمیکنه؟ خودشم میگه چون PK نداری.
چرا از جداولی که با جدول دیگه در ارتباطند رکوردی حذف نمیکنه؟ گیر میده به کلید خارجی.
۲۵-شهریور-۱۳۸۸, ۰۲:۴۲:۱۷
ارسال‌ها
پاسخ
تشکر شده توسط : HoseinVig, yousefzade, poorani, bia2varavi, majid_labbeiky, saeed_nami, lillieei3
HoseinVig آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 1,165
موضوع‌ها: 97
تاریخ عضویت: مرداد ۱۳۸۵

تشکرها : 4768
( 2464 تشکر در 677 ارسال )
ارسال: #11
RE: LINQ to SQL از صفر تا جایی که بتونیم
سلام
درباره سوال اولت pk ظاهرا اجباری فکر میکنم یه قانون باشه توی LINQ ولی اگه میخواستی مشکلت حل بشه دو تا راه داری:
1) واسه جدولت primary key تعریف کنی
2) از store procedure استفاده کنی
اگه نخای pk تعریف کنی فکر کنم راه دوم مناسب باشه ، با تعریف یک stor procedure و اضافه اون به LINQ اون store procedure بصورت یک متد به کلاس بانکتون اضافه میشه.
درباره سوال دومتون که گفتین جدولی که رابطه داره نمیشه ازش چیزی حذف کرد... باید بگم که اینجوری نیست حتما یه اشتباهی کردی چون نباید اینجوری باشه .دقت کن آخرین تغییراتی که توی بانکت میدی برای اعمال تغییرات باید جدول مذکور رو از اون dbml که اضافه کردی به پروژت حذف کنی و دوباره اضافه کنی... و برای دادن relation هم از LINQ و اون dbml استفاده نکن ، برای اینکار از همون دیاگرام های دیتابیس استفاده کن.

۲۵-شهریور-۱۳۸۸, ۱۸:۲۸:۳۹
ارسال‌ها
پاسخ
تشکر شده توسط : Payman62, yousefzade, talal, poorani, sav68, alaska, mehrdad166, arezoo.naciri, fahimfallahi, amirsajjadi, bia2varavi, majid_labbeiky, setarehnarges, saeed_nami, ethelza60


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  مشکلات linq Payman62 2 3,926 ۲۰-مرداد-۱۳۹۰, ۰۹:۳۶:۱۹
آخرین ارسال: peyman68_2005

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS