PDA

View Full Version : لطفا این کد EF را برایم تشریح کنید



csharpprogramer88
دوشنبه 11 شهریور 1392, 10:01 صبح
Entities context = new Entities();
var serv = (from s in context.tbl_kharid
join sa in context.tbl_tarafhesab on s.id_group_factorkharid equals sa.id
where sa.id == 1
select s).ToList();
dataGridView1.DataSource = serv;



دوستان سلام
لطف کنید و این کد EF را برایم توضیح بدید

با تشکر

alexmcse
دوشنبه 11 شهریور 1392, 10:58 صبح
خط اول یک نمونه از Entities میسازد
تیبل خرید و طرف حساب باهم در ارتباط است
دوم یک کوئری است که ای دی تیبل طرف حساب برابر باشد با یک و متصل به تیبل خرید باشد
ToList() یک نوع کالکشن است که محتویات کوئری را در خود نگه میدارد
سوم کوئری را برابر دیتاسورس گرید قرار میدهد که باعث نمایش میشود

csharpprogramer88
دوشنبه 11 شهریور 1392, 11:04 صبح
select s).ToList();

این یعنی چی؟

Mansoor92
دوشنبه 11 شهریور 1392, 11:41 صبح
select s).ToList();

این یعنی چی؟

اگر اشتباه نکنم برای نمایش توی گرید ویوو هست و البته میتونست اینطوری هم بنویسه


Entities context = new Entities();
var serv = (from s in context.tbl_kharid
join sa in context.tbl_tarafhesab on s.id_group_factorkharid equals sa.id
where sa.id == 1
select s;
dataGridView1.DataSource = serv.ToList().;

مهرداد صفا
دوشنبه 11 شهریور 1392, 12:29 عصر
با سلام.
تمام فیلدهای جدول خرید در صورتی که فیلد "شناسه فاکتور" برابر فیلد شناسه جدول طرف حساب باشد و در عین حال شناسه طرف حساب برابر 1 باشد انتخاب می شود.
به نظر می رسد چون فیلدی از جدول طرف حساب انتخاب نشده، join (بسته به شرایط جدول) قابل حذف باشد.
خط آخر مشخص می کند که کل رکورد باید انتخاب شود. و همچنین متود ToList باعث می شود فرمانهای درخواست execute شوند و نتیجه به صورت یک List<...> برگردانده شود. در واقع اغلب اوقات از متودهای ToArray و ToList برای انجام شدن فرمانهای Linq استفاده می شود که در Linq to entity نیازی به این کار نیست و می توانید ToList را حذف کنید.

برای مطالعه بیشتر:
آموزش linq از ابتدا تا انتها (http://barnamenevis.org/showthread.php?193300-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-LINQ-%28%D8%A7%D8%B2-%D8%A7%D8%A8%D8%AA%D8%AF%D8%A7-%D8%AA%D8%A7-%D8%A7%D9%86%D8%AA%D9%87%D8%A7%29)
Enumerable.ToList method (http://msdn.microsoft.com/query/dev10.query?appId=Dev10IDEF1&l=EN-US&k=k%28%22SYSTEM.LINQ.ENUMERABLE.TOLIST%60%601%22%2 9;k%28VS.OBJECTBROWSER%29;k%28TargetFrameworkMonik er-%22.NETFRAMEWORK%2cVERSION%3dV4.0%22%29&rd=true)
Query execution (http://msdn.microsoft.com/en-us/library/bb738633.aspx)