خانه > Entity Framework, Persian Contents > معرفی کلیاتی از تکنولوژی Entity Framework

معرفی کلیاتی از تکنولوژی Entity Framework

Entity Framework مجموعه‌ای از تکنولوژی‌ها در ADO .NET است که توسعه نرم‌افزارهای بر مبنای داده را پشتیبانی می‌کند.

معمارها و توسعه‌دهندگان برنامه‌های بر مبنای داده با دوهدف بسیار متفاوت دست و پنجه نرم می‌کنند. آن‌ها باید موجودیت‌ها (Entity)، رابطه‌ها (Association) و منطق مشکلات کاری را که حل کرده‌اند، مدل‌سازی نمایند. آن‌ها همچنین باید با موتور داده‌ای استفاده شده برای ذخیره و دریافت داده‌ها کار نمایند.

با استفاده از این تکنولوژی، توسعه‌دهندگان می‌توانند در سطح بالاتری از تجرد در حین کار با داده‌ها دست یابند. آن‌ها همچنین می‌توانندنرم‌افزارهای بر مبنای داده را با میزان کمتر از کد نسبت به نرم‌افزارهای سنتی ساخته و نگهداری کنند.

حال به جزئیات بیشتری در این زمینه می‌پردازیم. پسوند‌های موجود در Entity Framework عبارتند از:

۱- csdl : این پسوند از مخفف شدن Conceptual Schema Definition Language ساخته شده است. همان‌طور که از نام آن مشخص است این نوع فایل شامل مدل مفهومی (conceptual model) ما می‌باشد. این نوع فایل، پیاده سازی معادل Entity Data Model در LINQ می‌باشد.

۲- ssdl : این پسوند از مخفف شدن Store Schema Definition Language ساخته شده است. این نوع فایل مدل ذخیره‌سازی را تعریف می‌کند. به این مدل، مدل منطقی (logical model) هم گفته می‌شود.

۳- msl : این پسوند از مخفف شدن Mapping Specification Language ساخته شده است. این نوع فایل نگاشت بین دو مدل بالا را تعریف می‌کند.

رویکردهای طراحی رایج در هنگام ساخت یک نرم‌افزار یا سرویس این است که آن را به ۳ بخش تقسیم کنند:

  • domail model : در این مدل موجودیت‌ها و ارتباطات فی ماین را در سیستم‌هایی که مدل شده‌اند تعریف می‌کنند.
  • logical model : این مدل در پایگاه داده‌های رابطه‌ای، موجودیت‌ها و ارتباطات را در جداول با محدودیت‌های کلید خارجی، نرمال‌سازی می‌کنند.
  • physical model : این مدل قابلیت‌های یک موتور داده‌ای خاص را به وسیله مشخص کردن جزئیات ذخیره‌سازی مانند partitioning و indexing اداره می‌کند.

حال که با این رویکرد عام طراحی آشنا شدید، لازم است که به موارد زیر اشاره کنم:

در Entity Framework به domain model ، مدل مفهومی یا conceptual model گفته می‌شود. همچنین معادل logical model هم مدل ذخیره‌سازی یا storage model می‌باشد.

Entity Framework از اطلاعات موجود در مدل و فایل‌های نگاشت، برای ترجمه کوئری‌های آبجکتی در برابر موجودیت‌های جایگزین شده در مدل مفهومی به کوئری‌های سطح پایگاه داده استفاده می‌کند.

روش‌های موجود برای کوئری زدن روی مدل مفهومی عبارتست از :

۱- LINQ to Entity : قابلیت استفاده از LINQ به انواع موجودیت تعریف شده در مدل مفهومی را مهیا می‌کند.

۲- Entity SQL : یک نسخه از زبان SQL است که مستقل از ذخیره‌سازی است و به صورت مستقیم با موجودیت‌های موجود در مدل مفهومی و آن‌هایی که مفاهیم EDM را پشتیبانی می‌کنند کار می‌کند. این نوع از زبان هم با کوئری‌های آبجکتی و هم کوئری‌هایی که توسط استفاده از Entity Client Provider اجرا می‌شوند، قابل استفاده هستند.

۳- متدهای سازنده کوئری(Query Builder Methods) : این متدها، این امکان را به ما می‌دهند که کوئری‌های Entity SQL را با استفاده از متدهای کوئری که در LINQ to SQL موجود است تولید کنند.

توجه به این نکته اهمیت دارد که Entity Framework از EntityClient data provider برای مدیریت اتصال به پایگاه داده، ترجمه کوئری‌های موجودیت به کوئری‌های مخصوص منبع داده و باز گرداندن یک datareader که Entity Framework برای ساختن موجودیت‌ها در آبجکت‌ها نیاز دارد، استفاده می‌نماید. زمانی که نیازی به تبدیل شدن به آبجکت‌ها هم نیاز نباشد این provider می‌تواند به عنوان یک ADO .NET data provider استفاده شود و خروجی را به عنوان یک datareader فقط خواندنی بدهد.

نمودار دسترسی به داده‌ها در Entity Framework به شکل زیر است:

معماری دسترسی به داده Entity Framework

  1. hosseinsinohe
    مه 27, 2010 در 3:48 ب.ظ.

    تشکر
    در مورد Entity Framework بیشتر بنویسید

    • مه 27, 2010 در 4:15 ب.ظ.

      ممنون از ابراز نظرتون
      این کار رو در دستور کار قرار دارم.

  2. شاهین کیاست
    ژوئن 30, 2010 در 5:57 ب.ظ.

    سلام جناب رمضانی از مطالب زیبایتان لذت بردم.
    جند تا سوال :
    1)ایا entity framework یک ORm است ؟
    2)مزیت اون بر ابزاری مثل Codesmith چیه و کدام قوی تر هست؟
    3)با entity framework لایه ی DAl رو تولید می کنیم؟(code smith با provider nettiers این کار رو انجام میده )
    موفق و پایدار باشید امیدوارم بیشتر با هم اشنا شویم🙂
    شاهین

    • ژوئیه 1, 2010 در 7:16 ق.ظ.

      سلام دوست عزیز

      entity frame work همان طور که فرمودید یک ORM است که توسط مایکروسافت توسعه داده شده و آخرین نسخه آن با Framework 4 عرضه شد. معمولا از ORM ها بسته به ساختار معماری در لایه دسترسی به داده‌ها استفاده می‌شود. راستش با codesmith که شما فرمودید آشنایی ندارم ولی از اینکه آن را معرفی کردید ممنونم.

  3. علی.ح
    ژوئیه 9, 2010 در 8:41 ب.ظ.

    جناب رمضانی از تلاشی که برای ارائه مطالب به پارسی زبانها دارید متشکرم. دست مریزاد.

  1. No trackbacks yet.

پاسخی بگذارید

در پایین مشخصات خود را پر کنید یا برای ورود روی شمایل‌ها کلیک نمایید:

نشان‌وارهٔ وردپرس.کام

شما در حال بیان دیدگاه با حساب کاربری WordPress.com خود هستید. بیرون رفتن / تغییر دادن )

تصویر توییتر

شما در حال بیان دیدگاه با حساب کاربری Twitter خود هستید. بیرون رفتن / تغییر دادن )

عکس فیسبوک

شما در حال بیان دیدگاه با حساب کاربری Facebook خود هستید. بیرون رفتن / تغییر دادن )

عکس گوگل+

شما در حال بیان دیدگاه با حساب کاربری Google+ خود هستید. بیرون رفتن / تغییر دادن )

درحال اتصال به %s

%d وب‌نوشت‌نویس این را دوست دارند: