Burada modeller üzerinde sql serverda karşılığı olan veri tiplerini değiştirebilir, uniqe özelliği gibi bazı kısıtlayıcı şartlar verebiliriz
Bunun için MAP katmanına Configurations Klasörü açalım ve FluentApi validasyon yazacağımız her bir model için class açalım.
UserConfiguration.cs
public class UserConfiguration : IEntityTypeConfiguration<User>
{
public void Configure(EntityTypeBuilder<User> builder)
{
builder.HasIndex(x => x.UserName).IsUnique();
// builder.Ignore("Image");
}
}
}
{
public void Configure(EntityTypeBuilder<User> builder)
{
builder.HasIndex(x => x.UserName).IsUnique();
builder.Property(x => x.UserName).HasColumnType("varchar(10)").IsRequired();
builder.Property(x => x.Password).HasColumnType("varchar(max)").IsRequired();
builder.Property(x => x.NameSurname).HasColumnType("varchar(100)");
builder.Property(x => x.Phone).HasColumnType("varchar(11)");
//Eğer bir propertynin db de oluşmasını istemiyorsak;// builder.Ignore("Image");
}
}
}
StationConfiguration.cs
public class StationConfiguration:IEntityTypeConfiguration<Station>
{
public void Configure(EntityTypeBuilder<Station> builder)
{
builder.Property(x => x.StationName).HasColumnType("varchar(100)").IsRequired();
builder.Property(x => x.Adress).HasColumnType("varchar(max)");
builder.Property(x => x.Phone).HasColumnType("varchar(11)");
}
}
SalesConfiguration.cs
public class SalesConfiguration:IEntityTypeConfiguration<Sales>
{
public void Configure(EntityTypeBuilder<Sales> builder)
{
builder.HasIndex(x => x.Plate).IsUnique();
builder.Property(x => x.Plate).HasColumnType("varchar(12)").IsRequired().HasMaxLength(12);
builder.Property(x => x.PumpNo).HasColumnType("varchar(2)").IsRequired();
builder.Property(x => x.TotalPrice).HasColumnType("Money");
}
}
PaymentConfiguration.cs
public class PaymentConfiguration : IEntityTypeConfiguration<Payment>
{
public void Configure(EntityTypeBuilder<Payment> builder)
{
builder.Property(x => x.Ptype).IsRequired();
}
}
GasConfiguration.cs
public class GasConfiguration:IEntityTypeConfiguration<Gas>
{
public void Configure(EntityTypeBuilder<Gas> builder)
{
builder.Property(x => x.GasTypes).IsRequired();
builder.Property(x => x.Prince).IsRequired();
}
}
DAL Katmanındaki MyModelContext.cs içerisindeki OnModelCreating methodu içerisine;
modelBuilder.ApplyConfiguration(new UserConfiguration());
modelBuilder.ApplyConfiguration(new StationConfiguration());
modelBuilder.ApplyConfiguration(new StationConfiguration());
modelBuilder.ApplyConfiguration(new SalesConfiguration());
modelBuilder.ApplyConfiguration(new PaymentConfiguration());
modelBuilder.ApplyConfiguration(new GasConfiguration());
Bir sonraki yazıda bu Configuration modellerinde Foreign Key ve ilişki tanımlamalarını yapacağız..
Hiç yorum yok:
Yorum Gönder