صفحه شخصی سید علا سبزپوش

برنامه نویس دات نت و sql_server --ریاضیات

صفحه شخصی سید علا سبزپوش

برنامه نویس دات نت و sql_server --ریاضیات

Entity Framework 4 part ۴


نگاهی عمیق تر به Entity Data model

ابتدا از محیط کاری و پنجره های طراحی EDM  صحبت می کنیم . در کار با EDM  4 پنجره از محیط طراحی برای شما بسیار مفید است

1-Designer surface : سطح بصری طراحی می باشد که شما می توانید به کمک آن ساختار و مدل EDM  را ایجاد و یا تغییر دهید.

2-Mapping Detail windows  : پنجره ای برای map  کردن و تغییر در این پنجره شما یک ساختار فیزیکی از عناصر Entity را مشاهده می کنید

3-Toolbox  : جعبه ابزار که برای همه مشخص است و در مقاله قبل با آن بیشتر آشنا شدیم

4-Model Browser Window  : این پنجره ساختاری درختی از مدل مفهومی و منطقی مدل نمایش می دهد .

در شکل زیر این چهار پنجره به تفکیک نمایش داده شده است .


.


 

Entities

برای فهم بهتر entity  باید با چند مفهوم آشنا شویم

Entity Type  : نشان دهنده نوع خاصی از داده ها است مثلا داده ای از نوع سطرهای جدول کارمند Emplyee ، در واقع می توان گفت رکوردهای جدول را نشان می دهند..

Entity Set : یک در برگیرنده یا مجموعه ای از Entity  های واحد .بنابر این Entity  ها را می توان بصورت Entity Set  گروه بندی کرد .در هر Entity set  ما می توانیم چند Entity type  داشته باشیم و هر گروه Entity Set نیز می تواند با یک Entity Set دیگر در ارتباط باشد .

فرض کنیدما 3 نوع Entity Type  به نامهای Salesperson ,SalesOrderHeader,SalesOrderDetail  داریم و دو تا Entity Set داریم که به صورت شکل زیر هستند



دراینجا Entity Set  اول شامل دوتا Entity Type  است .

Scalar Properties  : اگر مقاله های قبلی را مطالعه کرده باشید متوجه شدید که هر Entity Type  دارای مجموعه ای از خصوصیات (Properties  ) می باشد که یکی از آنها Scalar Properties  است . اگر بخواهیم آن را به زبان ساده بیان کنیم باید بگویم که این آیتم در واقع خصوصیتهایی را تعریف می کند که مقادیر رایج متغیرها یعنی عدد ، رشته ، کارکتر و تاریخ و غیره را می پذیرد .به تعبیری دیگر همان فیلدها بانک اطلاعاتی هستند که هر کدام دارای نوع هستند اگر شما یک Entity Type  از مثالهای قبل ایجاد کرده باشید کافیست یکی از خصوصیات را انتخاب کنید و به پنجره Properties  دقت کنید



می بینید هر کدام از فیلدها یا همان خصوصیتهای Entity  ما دارای ویژگیهایی است مانند زیر

 Name  : نام خصوصیت مورد نظر را نمایش می دهد که می توان آن را تغییر داد

Nullable : آیا فیلد مشخص شده مقدار Null  را می پذیرید

Setter : همان خاصیت Set  در تعریف خصوصیات کلاسها که ما در اینجا سطح دسترسی آن را تعریف می کنیم

Getter : همان خاصیت Get  در تعریف خصوصیت فیلد کلاسها که ما در اینجا سطح دسترسی آن را تعریف می کنیم

StoredGenerationPattern : معادل Auto –generated  در بانکهای اطلاعاتی یعنی مقادیر یک فیلد اتوماتیک اضافه می شوند

Type : نوع فید

Default Value: مقدار پیش فرض

Complex Types

حتما تا کنون با ساختارها (structure) سروکار داشته اید . ما ساختاری  تعریف می کردیم که می توانست مجموعه ای از داده های متفاوت را با هم در یک متغیر ساختاری جمع آوری می کرد . مفهموم Complex Types  چیزی شبیه به همان مغیرهای ساختاری است . در وواقع یک متغیر مرکب است .مثلا اگر بخواهید آدرس فردی را با ساختار تلفن – آدرس منزل_ایمیل _شماره موبایل ، ذخیره کنید .باید از یک متغیر مرکب یا همان complex  استفاده کرد . اکنون با مثال نحوه تعریف آن را نشان می دهم .ما در بخش قبل گفتیم که یک Entity  می تواند شامل خصوصیاتی باشد که از نوع متغیرهای متعارف باشد مثلا عددی یا کارکتری و غیره ، اما اگر بخواهیم خصوصیتی پیچیده تر و با نوع مرکب داشته باشیم ، مثلا یک خصوصیت داشته باشیم که از نوع ساختاری یا یک نوع مرکب و پیچیده ، چکار بایدکرد . جواب همان Complex Types

شما باید ابتدا یک آیتم و متغیر از نوع Complex Types  تعریف کنید و پس از آن در Entity  مورد نظرتان یک خصوصیت از نوع Complex Property تعریف کنید که این خصوصیت مرکب بعدا از نوع Complex Types خواهد بود.

فرض کنید پروژه ای که قبلا ایجاد کرده ایم را باز کرده ایم ، به پنجره Model Browser  دقت کنید

همانور که می بینید گزینه Complex Types  را مشاهده می کنید . برای ایجاد آن بر روی Complex Types  کلیک راست کرده و گزینه Create Complex Types را انتخاب کنید .یک آیتم Complex Types  ایجاد می شودنام آن را AddressInfo  می نامیم اکنون بر روی همان آیتم مجددا کلیک راست کنید و گزینه Add  را انتخاب کنید و سپس گزینه Scalar Property را انتخاب کنید .لیستی از انواع برای شما باز می شود



فرض کنید می خواهیم آیتمی تعریف کنیم که آدرس را بصورت شماره تلفن و آدرس ذخیره کند پس 2 قسمت داریم یکی Phone , و دیگری Address است فرض کنیم اولی از نوع عددی و دومی کارکتری پس اولی را بصورت زیر تعریف کنید

Add  ----à Scalar Property --à Int32

و سپس نام آن را phone  وارد کنید برای دومی هم به همان ترتیب با این تفاوت که نوع آن String  است .




اکنون ما یک آیتم complex Types  تعریف کردیم اما ما مشخص نکردیم که این آیتم باید به کدام Entity  ارتباط داشته باشد برای اینکار بر روی یکی از Entity  های مدل فرضا Entity2  کلیک راست کرده و گزینه Complex Types  را انتخاب می کنیم مانند شکل زیر خواهد شد


اکنون به پنجره

propertie مرتبط به این Complexproperty بروید و از قسمت Type  مربوطه آیتم AddressInfo را انتخاب کنید در حقیقت ما اینجا خصوصیتی تعریف کردیم از نوع AddressInfo  که در واقع یک نوع مرکب جدید تعریف شده توسط کاربر است .



ادامه دارد...

نظرات 1 + ارسال نظر
مستر فرید شنبه 13 اسفند‌ماه سال 1390 ساعت 11:23 ق.ظ

دمت گرم

برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)
ایمیل شما بعد از ثبت نمایش داده نخواهد شد