
یادگیری سی شارپ از مفاهیم پایه تا پروژه محور: شیگرایی، کار با SQL و LINQ، ORMها (Entity Framework)، ساخت پروژه مدیریت رستوران با گزارشات حرفهای و امکانات کامل!
مشاهده بیشتر
یادگیری MVC Core از مبانی تا پیشرفته: شیگرایی، Routing، Entity Framework، امنیت، تست یونیت، Razor، Ajax، و پروژههای کاربردی! یک دوره کامل برای تسلط بر توسعه وب با ASP.NET Core. به صورت حضوری و آنلاین!
مشاهده بیشترمشخصات مقاله
آموزش قواعد Code-First سفارشی
آموزش قواعد Code-First سفارشی
Code-First مجموعه ای از رفتار پیش فرض برای مدل هایی که به نام conventions اشاره شده است را دارد.EF6 توانایی را فراهم می کند که با آن شما می توانید conventions سفارشی خودتان را فراهم کنید که می تواند رفتار پیش فرضی برای مدل هایتان باشد.
دو نوع اصلی conventions وجود دارد
- Configuration Conventions
- 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 را نیز پیاده سازی می کند.