آموزشگاه برنامه نویسی تحلیل داده
آموزشگاه برنامه نویسی تحلیل داده

آموزش قواعد Code-First سفارشی

دوره های مرتبط با این مقاله

آموزش قواعد Code-First سفارشی

Code-First مجموعه ای از رفتار پیش فرض برای مدل هایی که به نام conventions اشاره شده است را دارد.EF6 توانایی را فراهم می کند که با آن شما می توانید conventions سفارشی خودتان را فراهم کنید که می تواند رفتار پیش فرضی برای مدل هایتان باشد.
دو نوع اصلی conventions وجود دارد


  1. Configuration Conventions
  2. Model Conventions

Configuration Conventions روشی است که برای پیکربندی موجودیت ها بدون اینکه رفتار پیش فرض مهیا شده در Fluent API را دوباره نویسی کند، استفاده می شود. شما می توانید یکconfiguration convention در رویداد OnModelCreating یا در یک کلاس Convention سفارشی تعریف کنید.و به همین روش مشابه شما می توانید entity mappings عادی را با Fluent API تعریف کنید.
برای مثال شما می توانید یک کلید اولیه را برای موجودیتی که مشخصه ای به نام {entity name} _ID تعریف کنید، برای مثال مشخصه Student_ID از موجودیت Student می تواند کلید اولیه باشد.


protected override void OnModelCreating(DbModelBuilder modelBuilder)‎
        ‎    {‎
        ‎        modelBuilder
        ‎            .Properties()‎
        ‎            .Where(p => p.Name == p.DeclaringType.Name + "_ID")‎
        ‎            .Configure(p => p.IsKey());‎
        ‎        base.OnModelCreating(modelBuilder);‎
        ‎    }

مثال زیر نشان می دهد که چگونه می توانید طول رشته را برای مشخصه Description در همه موجودیت ها را set کنید.


protected override void OnModelCreating(DbModelBuilder modelBuilder)‎
        ‎    {‎
        ‎            modelBuilder
        ‎                .Properties()‎
        ‎                .Where(p => p.Name == "Description")‎
        ‎                .Configure(p => p.HasMaxLength(200));‎
        ‎        base.OnModelCreating(modelBuilder);‎
        ‎    }‎

شما همچنین می توانید یک کلاس سفارشی برای این convention به وسیله مشتق گرفتن از کلاس convention به شکل زیر تعریف کنید


   
public class PKConvention : Convention‎
        ‎    {‎
        ‎        public PKConvention()‎
        ‎        {‎
        ‎            .Properties()‎
        ‎            .Where(p => p.Name == p.DeclaringType.Name + "_ID")‎
        ‎            .Configure(p => p.IsKey());‎
        ‎        }‎
        ‎    }

Convention سفارشی را همانند شکل زیر نشان دهید


protected override void OnModelCreating(DbModelBuilder modelBuilder)‎
        ‎    {‎
        ‎        modelBuilder.Conventions.Add();‎
        ‎    }

Model Conventions

Model Conventions بر اساس مدل اصلی metadata می باشد و در هر دو conventions آیتم های CSDL و SSDL وجود دارد. کلاسی را ایجاد کنید که IConceptualModelConvention ازCSDL conventions را پیاده سازی می کند و همچنین IStoreModelConvention از CSDL conventions را نیز پیاده سازی می کند.

  • 2799
  •    1550
  • تاریخ ارسال :   1394/07/27

دانلود PDF دانلود سورس کد دانشجویان گرامی اگر این مطلب برای شما مفید بود لطفا ما را در GooglePlus محبوب کنید
رمز عبور: tahlildadeh.com یا www.tahlildadeh.com
ارسال دیدگاه نظرات کاربران
شماره موبایل دیدگاه
عنوان پست الکترونیک

ارسال

آموزشگاه برنامه نویسی تحلیل داده
آموزشگاه برنامه نویسی تحلیل داده

تمامی حقوق این سایت متعلق به آموزشگاه تحلیل داده می باشد .