PDA

View Full Version : گفتگو: چگونه به درستی از Entity Framework استفاده کنیم



maktab
پنج شنبه 06 بهمن 1390, 00:07 صبح
سلام
همان طور که میدونید خیلی ها توصیه میکنند به جای نوشتن لایه ارتباط با بانک از EF استفاده کنیم. آخه چرا وقتی چنین امکانی با این قدرت وجود دارد ما باید کلاس هایی بنویسیم که ممکن است دارای باگ باشد.
حالا که قراره از EF استفاده کنیم. از دوستان و اساتید خواهش می کنم بیان و در این تاپیک تجربیات خودشان را در اختیار بقیه بزارند.
برای شروع من چند تا سوال در این مورد دارم:
اکثر نمونه کارهایی که دانلود کردم برای ارتباط با EF از EntityDataSource استفاده میکنند. آیا این روش درسته؟ یا امکان مناسبتری (کد نویسی دستی) هم وجود داره؟
وقتی ما از EF استفاده میکنیم تمام کلاس های بانک به اشیا تبدیل میشند که میتوانیم از اطلاعات آنها استفاده کنیم. حالا فرض کنید قراره لیست دانشجویان سال دوم را در یک صفحه نشون بدیم. بهترین روش برای این کار چیه؟
با linq از شی EF اطلاعات را جستجو کرده و به صفحه اضافه کنیم؟
با SP از خود بانک بخونیم؟
یا ...؟

hjran abdpor
پنج شنبه 06 بهمن 1390, 01:33 صبح
سلام .
بهت توصیه میکنم کتاب اقای بهروز راد در این مورد را حتما بخرید ، کامل همه ی سوالاتون پاسخ داده شده است.

maktab
پنج شنبه 06 بهمن 1390, 08:41 صبح
سلام .
بهت توصیه میکنم کتاب اقای بهروز راد در این مورد را حتما بخرید ، کامل همه ی سوالاتون پاسخ داده شده است.

بهترین کتاب زبان اصلی در این مورد رو هم معرفی کنید.
من مشکل اساسی در مورد نحوه استفاده از EF را ندارم ولی نمی دانم ساختار اصلیش چطوریه! اگر میشه کتاب هایی معرفی کنید که در موردش بحث شده. مثلا فرض کنید ما توی یه صفحه از سایت با linq در شی EF دنبال یک دانشجو بگردیم. آیا در این حالت تمام اطلاعات دانشجویان از بانک خونده میشه بعد دنبال یک دانشجو میگرده یا مثل یک SP عمل میکنه؟

aserfg
پنج شنبه 06 بهمن 1390, 10:46 صبح
دوست عزیز استفاده از ORM هایی نظیر EF مزایای بسیار زیادی نسبت به کد نویسی با ado دارد که چند مورد آن که در مقالاتی توسط دوستان در این مورد توضیح داده شده به شرح ذیل است :

الف) يك ابزار ORM زمان تحويل پروژه را كاهش مي دهد
ب) يك ابزار ORM كدي با طراحي بهتر را توليد مي كند
ج) نيازي نيست تا حتما يك متخصص دات نت فريم ورك باشيد تا از يك ORM استفاده كنيد
د) هنگام استفاده از يك ابزار ORM ، مدت زمان آزمايش برنامه نيز كاهش مي يابد
ه) استفاده از يك ابزار ORM ، كار برنامه نويسي شما را ساده تر مي كند
و....

مثلا فرض کنید ما توی یه صفحه از سایت با linq در شی EF دنبال یک دانشجو بگردیم. آیا در این حالت تمام اطلاعات دانشجویان از بانک خونده میشه بعد دنبال یک دانشجو میگرده یا مثل یک SP عمل میکنه؟
از حیث بهینگی ، اطمینان خاطر بهتون میدم ، اما اونچه برنامه نویسان باید بهش دقت داشته باشند خروجیهایی است که به عنوان منبع داده (datasource) به یک کنترل داده ای نظیر gridview,... نسبت می دهند. به عنوان مثال از خروجیهایی نظیر IQUERYABLE به عنوان منبع داده به صورت مستقیم استفاده نشود .

maktab
پنج شنبه 06 بهمن 1390, 11:45 صبح
از حیث بهینگی ، اطمینان خاطر بهتون میدم ، اما اونچه برنامه نویسان باید بهش دقت داشته باشند خروجیهایی است که به عنوان منبع داده (datasource) به یک کنترل داده ای نظیر gridview,... نسبت می دهند. به عنوان مثال از خروجیهایی نظیر IQUERYABLE به عنوان منبع داده به صورت مستقیم استفاده نشود .

ولی من هنوز جوابم رو نگرفتم! مثلا ما اطلاعات دانشجویان رو در یک جدول از بانک داریم. حالا وقتی EF درست میکنیم این جدول بصورت شی در برنامه ساخته میشه. حالا اگر من در یکی از صفحات وب، برای اینکه به اطلاعات یک دانشجو دسترسی پیدا کنم. با استفاده از linq میام و توی اون شی ساخته شده بوسیله EF، جستجو میکنم و اطلاعات دانشجو مورد نظر رو پیدا میکنم.
حالا این EF چگونه این کار رو میکنه؟
اول تمام اطلاعات دانشجو رو در قالب یک شی از بانک میخونه و به برنامه اضافه میکنه بعدش وقتی من از دستورات linq استفاده میکنم در اون اطلاعات به دنبال دانشجو مورد نظر میگرده.
یا اینکه بصورت یک SP عمل میکنه و در بانک فقط به دنبال اون دانشجو مورد نظر میگرده؟