اجباری کردن ستون جدول در EF Core 37: نکات و بهترین روشها
هنگام کار با Entity Framework Core (EF Core) 3.7، ممکن است با شرایطی روبرو شوید که باید ستون جدول را مجبور کنید که مقدار یا الگوی خاصی داشته باشد. این می تواند در سناریوهای مختلف مفید باشد، مانند اطمینان از یکپارچگی داده ها، اجرای قوانین تجاری، یا ساده سازی پردازش داده ها. در این پاسخ، 37 نکته و بهترین روش برای اجباری کردن ستون جدول در EF Core 3.7 ارائه خواهیم کرد.
- از ویژگی
ضروری
استفاده کنید
ویژگی نیاز
برای تعیین اینکه یک ستون باید در جدول پایگاه داده وجود داشته باشد استفاده می شود. برای اجبار یک ستون به داشتن یک مقدار خاص، می توانید ویژگی Required
را روی true
تنظیم کنید و مقدار پیش فرض را ارائه دهید.
کلاس عمومی MyEntity {
[ضروری]
رشته عمومی MyColumn { get; تنظیم؛ }
}
- از ویژگی
DefaultValue
استفاده کنید
ویژگی DefaultValue
برای تعیین یک مقدار پیش فرض برای یک ستون استفاده می شود. برای اجبار یک ستون به داشتن یک مقدار خاص، میتوانید ویژگی DefaultValue
را روی مقدار دلخواه تنظیم کنید.
کلاس عمومی MyEntity {
[DefaultValue("MyDefaultValue")]
رشته عمومی MyColumn { get; تنظیم؛ }
}
- از ستون محاسبه شده استفاده کنید
ستون محاسبه شده ستونی است که از ستون های دیگر محاسبه می شود. برای وادار کردن یک ستون به داشتن یک مقدار خاص، می توانید یک ستون محاسبه شده ایجاد کنید که مقدار را بر اساس سایر ستون ها محاسبه می کند.
کلاس عمومی MyEntity {
[محاسبه شده]
رشته عمومی MyColumn { get { return MyOtherColumn + "Hello"; } تنظیم { } }
}
- از ویژگی اعتبارسنجی استفاده کنید
ویژگی های اعتبارسنجی برای اعتبارسنجی داده ها قبل از اینکه در پایگاه داده باقی بماند استفاده می شود. برای وادار کردن یک ستون به داشتن یک مقدار خاص، میتوانید از یک ویژگی اعتبارسنجی استفاده کنید که مقدار ستون را بررسی میکند و اطمینان میدهد که معیارهای مورد نظر را برآورده میکند.
[ValidateNotEmpty]
رشته عمومی MyColumn { get; تنظیم؛ }
- از روش اعتبارسنجی سفارشی استفاده کنید
همچنین میتوانید از یک روش اعتبارسنجی سفارشی برای اعمال یک مقدار یا الگوی خاص در یک ستون استفاده کنید. این روش را می توان قبل از اینکه در پایگاه داده باقی بماند، روی شی Entity
اعمال کرد.
کلاس عمومی MyEntity {
[ValidateCustom]
رشته عمومی MyColumn { get; تنظیم؛ }
خلأ خصوصی () ValidateCustom {
if (string.IsNullOrEmpty(MyColumn)) {
پرتاب جدید ValidationException ("MyColumn نباید خالی باشد");
}
}
}
- از یک محدودیت کلید خارجی استفاده کنید
یک محدودیت کلید خارجی برای اطمینان از ارجاع یک ستون به یک مقدار معتبر در جدول دیگر استفاده می شود. برای وادار کردن یک ستون به داشتن یک مقدار خاص، می توانید یک محدودیت کلید خارجی ایجاد کنید که به ستونی در جدول دیگر ارجاع دهد.
کلاس عمومی MyEntity {
[ForeignKey ("MyForeignKey")]
رشته عمومی MyColumn { get; تنظیم؛ }
public int MyForeignKey { get; تنظیم؛ }
}
- از یک محدودیت چک استفاده کنید
یک محدودیت چک برای اعمال یک مقدار یا الگوی خاص بر روی یک ستون استفاده می شود. برای وادار کردن یک ستون به داشتن یک مقدار خاص، می توانید یک محدودیت چک ایجاد کنید که مقدار ستون را بررسی می کند و از مطابقت آن با معیارهای مورد نظر اطمینان می یابد.
کلاس عمومی MyEntity {
[بررسی]
رشته عمومی MyColumn { get; تنظیم؛ }
[بررسی ("MyCheck")]
public void MyMethod() {
// مقدار MyColumn را بررسی کنید
}
}
- از یک نمایه منحصر به فرد استفاده کنید
یک شاخص منحصر به فرد برای اطمینان از اینکه یک ستون حاوی مقادیر منحصر به فرد است استفاده می شود. برای وادار کردن یک ستون به داشتن یک مقدار خاص، می توانید یک شاخص منحصر به فرد روی ستون ایجاد کنید.
کلاس عمومی MyEntity {
[کلید]
[منحصر بفرد]
رشته عمومی MyColumn { get; تنظیم؛ }
}
- از یک محدودیت مقدار پیش فرض استفاده کنید
یک محدودیت مقدار پیش فرض برای تعیین یک مقدار پیش فرض برای یک ستون استفاده می شود. برای وادار کردن یک ستون به داشتن یک مقدار خاص، میتوانید یک محدودیت مقدار پیشفرض ایجاد کنید که مقدار پیشفرض را روی مقدار دلخواه تنظیم میکند.
کلاس عمومی MyEntity {
[DefaultValue("MyDefaultValue")]
رشته عمومی MyColumn { get; تنظیم؛ }
}
- از یک ستون محاسبه شده با مقدار پیش فرض استفاده کنید
یک ستون محاسبهشده با مقدار پیشفرض شبیه به یک ستون محاسبهشده است، اما یک Defau را نیز مشخص میکند.مقدار lt برای ستون. برای وادار کردن یک ستون به داشتن یک مقدار خاص، می توانید یک ستون محاسبه شده با مقدار پیش فرض ایجاد کنید.
کلاس عمومی MyEntity {
[محاسبه شده]
[DefaultValue("MyDefaultValue")]
رشته عمومی MyColumn { get { return MyOtherColumn + "Hello"; } تنظیم { } }
}
- از یک ویژگی اعتبارسنجی با مقدار پیش فرض استفاده کنید
یک ویژگی اعتبارسنجی با مقدار پیشفرض برای اعتبارسنجی دادهها قبل از اینکه در پایگاه داده باقی بماند استفاده میشود. برای وادار کردن یک ستون به داشتن یک مقدار خاص، میتوانید از یک ویژگی اعتبارسنجی با مقدار پیشفرض استفاده کنید.
[ValidateNotEmpty(DefaultValue = "MyDefaultValue")]
رشته عمومی MyColumn { get; تنظیم؛ }
- از روش اعتبارسنجی سفارشی با مقدار پیشفرض استفاده کنید
یک روش اعتبارسنجی سفارشی با مقدار پیشفرض برای اعمال یک مقدار یا الگوی خاص در یک ستون استفاده میشود. برای اجبار یک ستون به داشتن یک مقدار خاص، میتوانید از یک روش اعتبارسنجی سفارشی با مقدار پیشفرض استفاده کنید.
کلاس عمومی MyEntity {
[ValidateCustom(DefaultValue = "MyDefaultValue")]
رشته عمومی MyColumn { get; تنظیم؛ }
خلأ خصوصی () ValidateCustom {
if (string.IsNullOrEmpty(MyColumn)) {
پرتاب جدید ValidationException ("MyColumn نباید خالی باشد");
}
}
}
- از یک محدودیت کلید خارجی با مقدار پیش فرض استفاده کنید
یک محدودیت کلید خارجی با مقدار پیشفرض برای اطمینان از ارجاع یک ستون به یک مقدار معتبر در جدول دیگر استفاده میشود. برای وادار کردن یک ستون به داشتن یک مقدار خاص، می توانید یک محدودیت کلید خارجی با یک مقدار پیش فرض ایجاد کنید.
کلاس عمومی MyEntity {
[ForeignKey("MyForeignKey", DefaultValue = "MyDefaultValue")]
رشته عمومی MyColumn { get; تنظیم؛ }
public int MyForeignKey { get; تنظیم؛ }
}
- از یک محدودیت چک با مقدار پیشفرض استفاده کنید
یک محدودیت چک با یک مقدار پیش فرض برای اعمال یک مقدار یا الگوی خاص بر روی یک ستون استفاده می شود. برای وادار کردن یک ستون به داشتن یک مقدار خاص، می توانید یک محدودیت چک با یک مقدار پیش فرض ایجاد کنید.
کلاس عمومی MyEntity {
[Check("MyCheck", DefaultValue = "MyDefaultValue")]
رشته عمومی MyColumn { get; تنظیم؛ }
public void MyMethod() {
// مقدار MyColumn را بررسی کنید
}
}
- از یک نمایه منحصر به فرد با مقدار پیش فرض استفاده کنید
برای اطمینان از اینکه یک ستون حاوی مقادیر منحصر به فرد است، از یک شاخص منحصر به فرد با مقدار پیش فرض استفاده می شود. برای وادار کردن یک ستون به داشتن یک مقدار خاص، می توانید یک شاخص منحصر به فرد با مقدار پیش فرض ایجاد کنید.
کلاس عمومی MyEntity {
[کلید]
[Unique(DefaultValue = "MyDefaultValue")]
رشته عمومی MyColumn { get; تنظیم؛ }
}
- از یک محدودیت مقدار پیشفرض با مقدار پیشفرض استفاده کنید
یک محدودیت مقدار پیش فرض با یک مقدار پیش فرض برای تعیین یک مقدار پیش فرض برای یک ستون استفاده می شود. برای مجبور کردن یک ستون به داشتن یک مقدار خاص، می توانید یک محدودیت مقدار پیش فرض با یک مقدار پیش فرض ایجاد کنید.
کلاس عمومی MyEntity {
[DefaultValue("MyDefaultValue")]
رشته عمومی MyColumn { get; تنظیم؛ }
}
- از یک ستون محاسبه شده با مقدار پیش فرض و یک ویژگی اعتبارسنجی استفاده کنید
یک ستون محاسبه شده با یک مقدار پیش فرض و یک ویژگی اعتبارسنجی برای اعمال یک مقدار یا الگوی خاص بر روی یک ستون استفاده می شود. برای وادار کردن یک ستون به داشتن یک مقدار خاص، می توانید یک ستون محاسبه شده با یک مقدار پیش فرض و یک ویژگی اعتبار سنجی ایجاد کنید.
کلاس عمومی MyEntity {
[محاسبه شده]
[DefaultValue("MyDefaultValue")]
[ValidateNotEmpty]
رشته عمومی MyColumn { get { return MyOtherColumn + "Hello"; } تنظیم { } }
}
- از روش اعتبارسنجی سفارشی با مقدار پیشفرض و ویژگی اعتبارسنجی استفاده کنید
یک روش اعتبارسنجی سفارشی با یک مقدار پیشفرض و یک ویژگی اعتبارسنجی برای اعمال یک مقدار یا الگوی خاص در یک ستون استفاده میشود. برای وادار کردن یک ستون به داشتن یک مقدار خاص، میتوانید از یک روش اعتبارسنجی سفارشی با یک مقدار پیشفرض و یک ویژگی اعتبارسنجی استفاده کنید.
کلاس عمومی MyEntity {
[ValidateCustom(DefaultValue = "MyDefaultValue")]
[ValidateNotEmpty]
رشته عمومی MyColumn { get; تنظیم؛ }
خلأ خصوصی () ValidateCustom {
if (string.IsNullOrEmpty(MyColumn)) {
پرتاب جدید ValidationException ("MyColumn نباید خالی باشد");
}
}
}
- از یک محدودیت کلید خارجی با یک مقدار پیشفرض و یک ویژگی اعتبارسنجی استفاده کنید
یک محدودیت کلید خارجی با یک مقدار پیشفرض و یک ویژگی اعتبارسنجی برای اطمینان از ارجاع یک ستون به یک مقدار معتبر در جدول دیگر استفاده میشود. برای وادار کردن یک ستون به داشتن یک مقدار خاص، می توانید یک کلید خارجی منفی ایجاد کنیدtraint با یک مقدار پیش فرض و یک ویژگی اعتبارسنجی.
کلاس عمومی MyEntity {
[ForeignKey("MyForeignKey", DefaultValue = "MyDefaultValue")]
[ValidateNotEmpty]
رشته عمومی MyColumn { get; تنظیم؛ }
public int MyForeignKey { get; تنظیم؛ }
}
- از یک محدودیت چک با یک مقدار پیشفرض و یک ویژگی اعتبارسنجی استفاده کنید
یک محدودیت چک با یک مقدار پیشفرض و یک ویژگی اعتبارسنجی برای اعمال یک مقدار یا الگوی خاص در یک ستون استفاده میشود. برای وادار کردن یک ستون به داشتن یک مقدار خاص، می توانید یک محدودیت چک با یک مقدار پیش فرض و یک ویژگی اعتبار سنجی ایجاد کنید.
کلاس عمومی MyEntity {
[Check("MyCheck", DefaultValue = "MyDefaultValue")]
[ValidateNotEmpty]
رشته عمومی MyColumn { get; تنظیم؛ }
public void MyMethod() {
// مقدار MyColumn را بررسی کنید
}
}
- از یک نمایه منحصر به فرد با مقدار پیش فرض و یک ویژگی اعتبارسنجی استفاده کنید
یک شاخص منحصر به فرد با یک مقدار پیش فرض و یک ویژگی اعتبارسنجی برای اطمینان از اینکه یک ستون حاوی مقادیر منحصر به فرد است استفاده می شود. برای وادار کردن یک ستون به داشتن یک مقدار خاص، می توانید یک شاخص منحصر به فرد با یک مقدار پیش فرض و یک ویژگی اعتبار سنجی ایجاد کنید.
کلاس عمومی MyEntity {
[کلید]
[Unique(DefaultValue = "MyDefaultValue")]
[ValidateNotEmpty]
رشته عمومی MyColumn { get; تنظیم؛ }
}
- از یک محدودیت مقدار پیشفرض با یک مقدار پیشفرض و یک ویژگی اعتبارسنجی استفاده کنید
یک محدودیت مقدار پیشفرض با یک مقدار پیشفرض و یک ویژگی اعتبارسنجی برای تعیین یک مقدار پیشفرض برای یک ستون استفاده میشود. برای وادار کردن یک ستون به داشتن یک مقدار خاص، می توانید