سلام
فرض کنید
کلاس زیر را داریم
public class test
{
public Guid Id { get; set; }
public string Name { get; set; }
public string Email { get; set; }
}
حال چگونه می توانم در fluent api یک ایندکس ترکیبی Name وEmail ایجاد کنم که IsUnique =true باشد
سلام
فرض کنید
کلاس زیر را داریم
public class test
{
public Guid Id { get; set; }
public string Name { get; set; }
public string Email { get; set; }
}
حال چگونه می توانم در fluent api یک ایندکس ترکیبی Name وEmail ایجاد کنم که IsUnique =true باشد
مثال:
[Index("IX_FirstAndSecond", 1, IsUnique = true)]
public int FirstColumn { get; set; }
[Index("IX_FirstAndSecond", 2, IsUnique = true)]
public int SecondColumn { get; set; }
البته fluent نیست اما مبحث زیر هم میتونه کمک کنه:
https://stackoverflow.com/questions/...ith-fluent-api
modelBuilder
.Entity<User>()
.Property(t => t.FirstName)
.IsRequired()
.HasMaxLength(60)
.HasColumnAnnotation(
IndexAnnotation.AnnotationName,
new IndexAnnotation(
new IndexAttribute("IX_FirstNameLastName", 1) { IsUnique = true }));
modelBuilder
.Entity<User>()
.Property(t => t.LastName)
.IsRequired()
.HasMaxLength(60)
.HasColumnAnnotation(
IndexAnnotation.AnnotationName,
new IndexAnnotation(
new IndexAttribute("IX_FirstNameLastName", 2) { IsUnique = true }));
سلام دوستان .موارد بالا به چه کاری میاد؟چه جایی به درد میخوره؟
موارد بالا زمانی مورد نیاز هست که یک فیلد در دیتابیس باید مقداری یکتا داشته باشد
مثلا در یک جدولی مثل اشخاص کد ملی یکتا هست و نباید مقداری مشابه داشته باشیم
بعضی مواقع نیاز است تا بیشتر از یک فیلد مشابه نداشته باشد مثلا فیلد نام و نام خانوادگی هر دو فیلد در مجموع یک فیلد را تشکیل میدهند و این دو ایندکس هر دو فیلد را همزمان بررسی میکند