PDA

View Full Version : entityframwork راهنمایی جهت یاد گیری



anahita6
سه شنبه 02 اسفند 1390, 20:09 عصر
یه سوال کوچیک داشتم . من linq رو بلد نیستم یعنی فقط ado کار کردم میشه بدون یاد گیری linq برم entityframework بخونم؟ اصلا به هم ربطی دارن؟

hjran abdpor
سه شنبه 02 اسفند 1390, 21:58 عصر
سلام.
بهتون پیشنهاد میکنم کتاب اقای بهروز راد را بخرید و مطالعه کنید .EF یه رابط جدید و بسیار عالی برای کار با پایگاه داده است .

anahita6
سه شنبه 02 اسفند 1390, 22:11 عصر
کتاب اورجینال دانلود کردم مشکل کتاب ندارم منتها به اندازه کافی وقت ندارم هم entity framwork بخونم هم linq میگم اگه به هم ربطی نداره از همون اول EF رو بخونم. حالا linq بالاخره پیش نیاز هست واسه entityframework یا نه؟

hjran abdpor
سه شنبه 02 اسفند 1390, 22:26 عصر
linqدر 2008 مطرح شد که یکسری مشکلات داشت که در 2010 نسخه کامل تر اون که EF بود را ارائه کرد ویکسری ویژگیهای جدید مانند رابطه چند به چند را اضافه کرد .در کل linq to sql برای پروژه های متوسط به پایین استفاده میشه ولی EF برای پروژه های بزرگ بسیار مناسب است .
ADO.NET با اشیایی که در اختیار ما می ذاره این قابلیت رو می ده که برنامه بتونه با DataBase ارتباط برقرار کنه و دستوری رو بده و نتیج ای رو بر گردونه. این نکته خیلی مهم هست که بدونید دستوراتی رو که DataBase می فهمه همگی Sql هستند.
از طرفی LINQ کارش query زدن روی هر DataSource ای هست. این DataSource می تونه List یا DataSet یا Xml یا هر object دیگه ای باشه و این مزیت Linq هست که با ارزش هست وگرنه هر Query ای رو که ما به صورت Linq to sql یا Ling to EF می زنیم در نهایت به دستورات sql قابل فهم برای DataBase تبدیل می شه و این ADO.NET هست که باز این کار و این ارتباط رو انجام می ده .

خانم Julia Lerman در کتاب خودش بخوبی با این مساله اشاره می کنه: "LINQ to SQL نتیجه کار تیمی توسعه دهندگانی در Microsoft بود که بر روی توسعه زبان کار می کردند و از دل پروژه LINQ ظهور پیدا کرد. در همون دوران، تیم Data Programmability در مایکروسافت روی زبان Entity SQL کار می کرد. وقتی هر دو پروژه به حدی رسیدند که قابل ارائه به دیگر تیم های حاضر در مایکروسافت بودند، روشن شد که مایکروسافت دو تکنولوژی خوب برای پاسخگویی به سناریوهای مختلف در دست داره. تیم Entity Framework اقدام به اعمال تغییرات در LINQ کرد تا با entity ها کار کنه که باعث سردرگمی بیشتر توسعه دهندگان شد، چرا که LINQ to Entrity و LINQ to SQL بسیار شبیه هم هستند. در نهایت، LINQ to SQL به تیم Data Programmability سپرده شد و در نوامبر 2008 این تیم اعلام کرد که چون هر دو تکنولوژی هدف یکسانی رو دنبال می کنن، مایکروسافت Entity Framework رو توسعه خواهد داد. زیرا EF توان آدرس دهی بانک های متفاوت رو داره و به دلیل استفاده از EDM، با تکنولوژی های آتی مایکروسافت سازگار هستش".

LINQ، یک Query Language هستش و به شما امکان میده تا هر نوع داده ای رو از هر منبعی (حتی فایل های Text) استخراج کنید (بشرط وجود Provider مناسب). از طرف دیگه، مایکروسافت LINQ to SQL رو بصورت پویا توسعه نخواهد داد و فقط در حد نگهداری به اون نگاه می کنه. EF 4.1 در حال حاضر گل سر سبد تیم Data Programmability هستش و در حقیقت پیاده سازی مایکروسافت از EDM... بنابراین بهتون توصیه می کنم از همین ابتدا روی EF کار کنید، و بر اون مسلط بشید.

و ....

امیدواورام فهیمده باشید.

anahita6
سه شنبه 02 اسفند 1390, 22:31 عصر
مرسی واسه جواب. پس با توجه به جمله آخرتون من این جوری استنباط میکنم که linq پیش نیاز entity نیست دیگه

hjran abdpor
سه شنبه 02 اسفند 1390, 22:47 عصر
دوست عزیز این جمله را یه بار دیگه بخونید :
linq، یک Query Language هستش و به شما امکان میده تا هر نوع داده ای رو از هر منبعی (حتی فایل های Text) استخراج کنید. در واقع باعث به وجود اوردن EF شده . شما برید سراغ EF .

این جمله تون هم غلط است :
پس با توجه به جمله آخرتون من این جوری استنباط میکنم که linq پیش نیاز entity نیست دیگه.

موفق باشید.

anahita6
سه شنبه 02 اسفند 1390, 22:54 عصر
تو رو خدا من رو گیج نکنید :گریه: اگهlinq باعث به وجود اومدن ef شده یعنی تو ef دستوراتی هست که از linq نشات گرفته باشه ? :افسرده:
ساده تر بگید اگه linq نخونم entity رو می فهمم یا نه:اشتباه:

hjran abdpor
سه شنبه 02 اسفند 1390, 23:15 عصر
بزارید اینو بگم شاید اشکال از من باشه برای رسوندن مفهموم : اگه الان مثلا ویندوز 3.1 , 98 , me , nt نبودند و یه هوی میگفتن بیاید با Seven کار کنید خوب طبیعتا یکم سخت است تا با اون اشنایی کامل پیدا کنید!!!! موضوع لینکو , EF هم همین طوری است ، اگه بخواید با EF کار کنید با حداقل بلد باشید که Linq to Sql تو 2008 چه جوری کار میکنه و با Linq تونسته باشید که انواع Query بگیرید نه فقط پایگاه داده . EF را هم مثل یه لایه تصور کنید که دید شما را انتزاعی میکنه و از درگیر شدن با کدهای که این عملیات را انجام می دهد دور میکند .

جواب سوال اخر شما هم : به نظر من نه ..... باید بلد باشید.

crazy_1892
چهارشنبه 03 اسفند 1390, 09:19 صبح
دوست عزیز به نظر من که در خیلی دستورات مشابه هستندا

alonemm
چهارشنبه 03 اسفند 1390, 12:20 عصر
یادگیری لینک زیاد وقت گیر نیست!