Aida-Hagh / EF-Core

Learn EF Core
1 stars 0 forks source link

Fluent API #6

Open Aida-Hagh opened 4 months ago

Aida-Hagh commented 4 months ago

یکی از روش‌های تنظیم مدل‌ها در EF Core است که به مااجازه می‌دهد تنظیمات پیشرفته‌تر و پیچیده‌تری را نسبت به Data Annotations اعمال کنیم. برای استفاده از Fluent API، باید متد OnModelCreating را در کلاس DbContext خود override کنیم و از کلاس ModelBuilder برای پیکربندی مدل‌ها استفاده کنیم.

public class Book {

public int Id { get; set; }
public string Title { get; set; }
public string Author { get; set; }
public decimal Price { get; set; }

}

public class AppDbContext : DbContext {

public DbSet<Book> Books { get; set; }

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
    optionsBuilder.UseSqlServer(@"Server=(localdb)\mssqllocaldb;Database=EFCoreFluentApi;Trusted_Connection=True;");
}

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    // پیکربندی مدل Book با استفاده از Fluent API
    modelBuilder.Entity<Book>(entity =>
    {
        entity.HasKey(e => e.Id);
        entity.Property(e => e.Title)
              .IsRequired()
              .HasMaxLength(100);
        entity.Property(e => e.Author)
              .IsRequired();
        entity.Property(e => e.Price)
              .HasColumnType("decimal(18,2)");
    });
}

}