PDA

View Full Version : سوال: ایندکس ترکیبی در fluent api



Iran58
چهارشنبه 20 دی 1396, 08:18 صبح
سلام
فرض کنید
کلاس زیر را داریم

public class test
{
public Guid Id { get; set; }
public string Name { get; set; }
public string Email { get; set; }
}

حال چگونه می توانم در fluent api یک ایندکس ترکیبی Name وEmail ایجاد کنم که IsUnique =true باشد

parvizwpf
چهارشنبه 20 دی 1396, 09:46 صبح
مثال:
[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/21573550/setting-unique-constraint-with-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 }));

a.golzar66
چهارشنبه 20 دی 1396, 11:26 صبح
سلام دوستان .موارد بالا به چه کاری میاد؟چه جایی به درد میخوره؟

ali_md110
چهارشنبه 20 دی 1396, 12:27 عصر
سلام دوستان .موارد بالا به چه کاری میاد؟چه جایی به درد میخوره؟

موارد بالا زمانی مورد نیاز هست که یک فیلد در دیتابیس باید مقداری یکتا داشته باشد
مثلا در یک جدولی مثل اشخاص کد ملی یکتا هست و نباید مقداری مشابه داشته باشیم
بعضی مواقع نیاز است تا بیشتر از یک فیلد مشابه نداشته باشد مثلا فیلد نام و نام خانوادگی هر دو فیلد در مجموع یک فیلد را تشکیل میدهند و این دو ایندکس هر دو فیلد را همزمان بررسی میکند