# برنامه نویسی با محصولات مایکروسافت > برنامه نویسی مبتنی بر Microsoft .Net Framework > دسترسی به داده ها (ADO.Net و LINQ و ...) >  ADO . NET Entity Framework

## mohsen_zelzela00

با سلام
می خواستم بپرسم که    ADO . NET Entity Frameworkچیست و کجا کاربرد دارد و آیا منبع آموزشی خوب برای آن وجود دارد؟؟؟

----------


## Vahid_moghaddam

http://msdn.microsoft.com/en-us/libr...8VS.80%29.aspx

----------


## afsharjowkar

ado.net به دیتا اکسسه که با framework4 توسعه داده شد وبهتر شد و برای اتصال به پایگاه داده در برنامه های شی گرا استفاده میشه . اینو بگم که باهاش میتونی روابط یک به چند و چند به چند بین کلاسارو به راحتی تو دیتابیس پیاد کنی 
در حال حاضر دارم یه کتاب در این رابطه رو ترجمه میکنم که بزودی توی بلاگم درج می کنم
www.oopc.mihanblog.com

----------


## majid325

آقا محسن به امضای خودتون (5 دلیل برای استفاده از یک ORM) رجوع کنید

----------


## bormohsen

www.howprg.com یک کتاب کامل توی این زمینه چاپ شده از انتشارات مهرگان قلم به نام vb.net2010 به همراه یک پروژه کامل

----------


## PetekDincos

با سلام
 جدول های دیتابیس به صورت رابطه ای با یکدیگر ارتباط دارند و برای اینکه بتوان این شمای رابطه ای را به شی گرا تبدیل کرد از ORM استفاده می شود به این صورت که جدول های دیتابیس رو به یک ORM نگاشت می کنند و خود ORM شی های (کلاس های) این جدول ها را تولید می کند و شمای شی گرا به دیتابیس شما می دهد و Entity Framework نیز یک ORM است با تشکر

----------


## میلاد رئیسی

مایکروسافت قبل از معرفی  Entity Framework   ، تکنولوژیهای ado , rdo  و سرانجام ado.net  را ارایه کرده بود و برای اکثر این تکنولوژیها زمان زیادی گذاشته بود ، هر کدام از اینها در زمان خود یک تکنولوژی نوینی و حرکت عظیمی بود . اما با گسترش مفاهیم شی گرایی و نیاز مبرم برنامه نویسان به ایجاد اشیا از داده ها و جداول بانکهای اطلاعاتی مایکروسافت اقدام به توسعه تکنولوژی ado.net کرد و ابتدا امکانات linq  و سپس  Entity Framework  را برای تعامل بهتر با شی گرایی مطرح کرد .
تا قبل از آن برنامه نویسان زمان زیادی را برای برنامه نویسی اشیا جدولهای بانکهای اطلاعاتی و ارتباطات آن صرف می کردند و هر گونه تغییر در جداول بانکها مستلزم تغییرات فراوانی در کد نویسی است .
ابتدا فهرستی از ابزارهای مدل سازی را معرفی می کنم :

1-ERM  یا  Entity Relationship Model ابزاری برای مدل سازی پایگاههای داده ای رابطه ای .
2- UML  یا Unified Modeling Language زبان استاندار ماژول سازی اشیا و کلاسها
3-ORM  یا  Object-Relational Mappingروشی و ابزاری برای ایجاد تعامل ماژولار میان اشیا بانکهای اطلاعاتی رابطه ای و زبانهای برنامه نویسی شی گرا
4-DFD یا Data Flow Diagram  ابزاری برای نمایش نموداری از جریان داده ها و فرآیند سیستم 

البته چند ORM  دیگر هم وجود دارد یکی NHibernate و SPRINT.net هر دوتای آنها از جاوا مشتق شده اند و توانمنیدهای فراوانی دارند اما بحث ما Entity  Framework.Net4       است .
البته لیست بالا لیست کاملی نیست و از حوصله این بحث خارج است .

قبل از ورود به بحث Entity Framework  مقدمه ای در مورد Entity Data Model یا مختصرا EDM  باید بیان شود .EDM  در حقیقت پایه و پیش نیاز Entity Framework است و شامل سه model  است 
1-مدل مفهومی 2-مدل منطقی 3-مدل ذخیره سازی یا فیزیکی 
ما می توانیم بگوییم که EDM  یک نسخه تکامل یافته ERM  است .ما در مدل EDM  در مورد ساختار شی گرای business objects داده ها بحث می کنیم در حالی که در مدل ERM  ما در مورد طرح بانک اطلاعاتی بحث می کنیم .که باید تفاوت میان مدل داده و مدل شی را متوجه شویم ، شکل زیر یک مدل داده را نشان می دهد در حالی که شکل بعدی مدل شی گرا از بانک اطلاعاتی ما را نشان می دهد.











*Entity* * چیست ؟*
ما برای فهم Entity Framework  باید ابتدا مفهوم Entity  را متوجه شویم ، البته بعدا در مورد این مفصلا خواهم نوشت ولی فعلا برای فهم بیشتر مقایسه ای با object  و relational data  انجام می دهم
*تشابه* *Entity* * با شی یا* *object* 
1-   Entity مانند شی دارای انواع تعریف شده برای داده ها و فیلدها است
2-  Entity  مانند شی دارای خصوصیت یا properties است
3-   هر   Entity  یک هویت متمایزی دارد
4-   یک خصوصیت  Entity  می تواند ارجاعی به Entity  دیگر باشد

*تفاوت* *Entity* * با شی یا* *object*
1 -Entity  می تواند یک فیلد اصلی یا primary keys داشته باشد
2-Entity  می تواند دارای ارتباطی با Entity  دیگر باشدمانند ارتباطات موجود در بانک اطلاعاتی

*تشابه* *Entity* * با داده رابطه ای* *relational data*
1-Entity  یک ارتباط چند گانه مانند داده ها با دیگر entity  می تواند داشته باشد
2-Entity   مانند داده ها می تواند کلید اصلی یا primary key داشته باشد 

*تفاوت* *Entity* * با داده رابطه ای* *relational data*
1-Entity  از داده ها با نوع پیچیده complex typesپشتیبانی می کند
2-Entity  از وراثت موجود در کلاسها پشتیبانی می کند
3-Entity  داده های فیزیکی را ذخیره نمی کند .

*پس* *Entity  Framework* *  چیست* ؟
درواقع Entity Framework   تکنولوژی توسعه یافته ADO.Net  است که فاصله بین برنامه نویسی شی گرایی و بانک اطلاعاتی رابطه ای را پر می کند .این فاصله معمولا تحت عنوان عدم تطابق شناخته می شود. و یک تکنیک برنامه نویسی برای تبدیل ارتباطات در Database به مفاهیم Object Oriented در برنامه نویسی است. در واقع می‌توان گفت که کلا‌س ها را به Table ها map می‌کند. وقتی که شما می‌خواهید به Database دسترسی پیدا کنید، یا اطلاعاتی را ذخیره کنید، این کارها را مستقیما بر‌ روی اشیاء ( Object تان ) انجام می‌دهید. *Entity  Framework* مدل داده ها را به سه بخش تقسیم می کند 1-مدل مفهومی یا ادراکی 2-مدل منطقی 3- مدل فیزیکی

----------


## Mohammad.barati

با سلام به دوستان 
دانلود رایگان فیلم آموزشی کامل و واضح دستورات CRUD در ADO.NET به زیان فارسی در سایت زیر وجود دارد:

http://www.softcode.ir/%D8%A2%D9%85%...%B1-c/#more-91

----------

