در ادامه آموزش های Data Annotation در Entity Framework می خواهیم جنبه های دیگری از ویژگی های آن را نشان دهیم. همچنین در این نوشته تلاش می کنیم تا پروژه بسیار ساده ولی کاربردی را آغاز کنیم. Data Annotation به تنهایی کاربردی نیست و توانایی آن در برنامه GUI (یا Windows Form) و Web (یا HTML Form) نشان داده می شود، جایی که نیاز است تا ورودی فرم سنجش درستی (Validation) شوند. در نوشته ویژگی های DataType و EmailAddress آموزش داده می شوند تا ببنید که چه اندازه Data Annotation به ویژه همراه با برنامه نویسی GUI و ASP.NET کاربردی است.

در دو مطلب پیشین تلاش کردیم تا نشان دهیم که ویژگی های Data Annotation برای سنجش درستی ورودی کاربران، به کار می رود. بنابراین Data Annotation بررسی هایی را در سمت کاربر (کلاینت) بر روی داده های ورودی انجام می دهد. در ادامه فهرست آن ویژگی هایی که تا به اینجا خوانده ایم را بررسی می کنیم.

  • Require : فیلد (فرم اچ تی ام ال در ASP.NET MVC) نمی تواند خالی فرستاده شود.

  • StringLength و  Minmum همراه باهم بیشینه و کمینه کاراکتر ورودی را نشان می دهند.

  • Range بازه ورودی را نشان می دهد.

  • Maximum بیشینه کاراکتر ورودی را نشان می دهد.

ویژگی DataType

در برنامه های وب نیاز دارید تا ورودی های ویژه ای مانند رایانامه، تاریخ و زمان، گذارواژه و دیگر گونه های ورودی را از کاربر دریافت کنید. در این باره، می توانیم Data Annotation را به کار ببرید تا در سمت کاربرو پیش از فرستادن داده ها، گونه ورودی را بررسی کرده و در صورتی که با ویژگی های Data Annotation همخوانی نداشت، پیام خطایی نشان داده شود.ویژگی DataType برای مشخص کردن نوع داده ای که دقیق تر از نوع درون پایگاه داده است، استفاده می شود

در کد زیر گونه ویژگی EnrolmentDate از کلاس Student به Date نشان داده شده است. درون بوسیله ویژگی DataType، بوسیله Enumator به نام DataType گونه Date گزینش شده است. (DataType.Date) در ادامه خواهید دید که بوسیله DataType گونه های دیگر مانند EmailAddress (به شیوه DataType.EmailAddress) را گزینش کنیم.

در کد بالا ویژگی دیگری را به کار بردیم و آن DisplayFormat است. از ویژگی DisplayFormat برای مشخص کردن فرمت ویژگی کلاس کمک می گیریم. برای نمونه در کد بالا، فرمت تاریخ را مشخص کرده ایم ولی می توانیم آن را برای داده های دیگر مانند واحد پول نیز کمک بگیریم. در کد بالا تنها یکی از گونه ها، Date را به کار برده ایم ولی می توانیم گونه های دیگر مانند DateTime (تاریخ و زمان)، Time (زمان)، Currency (واحد پول) و رایانامه (EmailAddress) را نیز به کار ببریم.

در کد زیر فرمت DataType.EmailAddress را به کار برده ایم. پیش از هر چیز نمی توان در زمان نام نویسی در یک سایت، رایانامه را خالی رها کرد، پس باید Require را به کار ببریم. همچنین برای وارد نکردن رایانامه پیام خطای ErrorMessage را نیز نوشته ایم. سپس گونه وروی برای ویژگی Email (از کلاس فرضی) رایانامه است که بیشینه اندازه کاراکتر هر رایانامه می تواند تا ۵۰ کاراکتر باشد.

نکته دیگر این که یک ویژگی دیگر به نام RegularExpression برای نوشتن و مشخص کردن عبارت با قاعده به کار رفته است که از این عبارت با قاعده ساده، بر سنجش درستی رایانه ورودی به کار می رود. رشته الگوی عبارت با قاعده دارای — بخش زیر است که هر کدام را روشن سازی کرده ایم.

  • در بخش زیر، بررسی می شود که آیا رشته رایانامه با هر شمارگانی (تعدادی) از یکی از کاراکتر های a تا z (به چَم (به معنی) بازه همه واک های (حرف های) کوچک انگلیسی)، شماره های صفر تا نه یا هر کدام از کاراکترهای ._%+- آغاز شده است.

  • سپس به دنبال آن باید یک @ بیاید.
  • سپس باید به هر شمارگان واک های a تا z یا شماره ها یا کاراکترهای نقطه یا – بیاید.

  • سپس بوسیله .\ باید یک نقطه یا همان جدا کننده رایانامه از دامین مانند com بیاید.
  • در پایان تنها بازه واک های انگلیسی a تا z آن هم از ۲ تا ۴ واک (حرف) مانند ir. یا com. می تواند درست دانسته شود.

چکیده

تا به اینجا، در کنار آنهایی که در بالا فهرست کرده ایم، سه ویژگی دیگر به نام های DataType و DisplayFormat و RegularExpression را از Data Annotation آموزش دادیم. به یاد داشته باشید که DataType جدا از گونه درون پایگاه داده است. برای نمونه DataType.EmailAddress به این چَم (معنی) نیست که ستون از گونه EmailAdress است، بلکه گونه آن بر پایه نگاشت string سی شارپ به VARCHAR پایگاه داده است.

بنابراین آن ویژگی ها که در این نوشته فهرست کردیم و پیش از این آموزش داده بودیم و آن سه تایی که در این نوشته تازه آموزش دادیم، برای بررسی درستی ورودی کاربر، در سمت کلاینت است. بنابراین اگر ورودی شما درست باشد و از ویژگی Data Annotation پیروی کنند، پس داده به سرور پایگاه داده فرستاده می شوند. ولی در کنار آنهایی که در این نوشته گفتیم، چهار ویژگی زیر از Data Annotation دیگر بر پایگاه داده کارساز (تاثیر گذار) هستند.

  • KEY نام دلخواه شما برای ویژگی را به کلید اصلی می دهد.
  • Column برای ستون های بهم آمیخته از چندین ویژگی به کار می رود.
  • ForeignKey کلید بیرونی (خارجی) به کلید اصلی جدول دیگر را نشان می دهد.
  • Table به جای نام کلاس، نام دلخواه شما را برای جدول بر می گزیند.
  • Index برای پیاده سازی ایندکس به کار می رود.