ASP NET CORE RAZOR PAGE BAKIM TEKNİK SERVİS PROJESİ 037 BAKIM HİZMETİ VİEW MODEL CLASSI

Bu dersimizde bakımla alakalı 35. derste tasarım hususunda konuştuğumuz sayfanın view model classını ekleme işlemine geçelim. Bunun için Models > ViewModel klasörüne sağ tıklıyor ve yeni bir class ekliyorum adını da MakineBakimHizmetiViewModel verdim.

Dersin detaylı anlatımı ve kod takibi için videoya mutlaka göz atınız.

Burada kodlarımızı yazalım:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace GursoyCNCBakim.Models.ViewModel
{
    public class MakineBakimHizmetiViewModel
    {
        public Makine Makine { get; set; }
        public BakimHizmetiGenel BakimHizmetiGenel { get; set; }
        public BakimHizmetiDetay BakimHizmetDetay { get; set; }

        public List< BakimTipi > BakimTipleriListesi { get; set; }
        public List< BakimHizmetKart > BakimHizmetKart { get; set; }
    }

}

Şimdi bu son oluşturduğumuz classları ve bir önceki derste oluşturduğumuz classları database tarafına yansıtmak için ApplicationDbContext.cs’ye geliyor ve ilgili kodlarımı yazıyorum.

using System;
using System.Collections.Generic;
using System.Text;
using GursoyCNCBakim.Models;
using Microsoft.AspNetCore.Identity.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore;

namespace GursoyCNCBakim.Data
{
    public class ApplicationDbContext : IdentityDbContext
    {
        public ApplicationDbContext(DbContextOptions< ApplicationDbContext> options)
            : base(options)
        {
        }

        public DbSet< BakimTipi> BakimTipi { get; set; }
        public DbSet< ApplicationUser> ApplicationUser { get; set; }

        public DbSet< Makine > Makine { get; set; }
        public DbSet< BakimHizmetKart > BakimHizmetKart { get; set; }
        public DbSet< BakimHizmetiGenel > BakimHizmetiGenel { get; set; }
        public DbSet< BakimHizmetiDetay > BakimHizmetiDetay { get; set; }
    }
}

İlgili migration oluşturmam gerekiyor bunun içinde Toolse menüsünde yer alan Nuget Package Manager seçiyorum ve buradan Package Manager Console açıyorum. Burada tüm classları migration işlemime dahil edicem, anlamlı ve ne iş yaptığını anlatan bir isim vermem iyi olur.

Add-migration EkleBakimHizmetiGenelBakimHizmetiDetayBakimHizmetKart şeklide kod yazdım. İsim biraz uzun ama en azından bu migration ne iş yapar doğrudan isminden anlayabiliyorum.

using System;
using Microsoft.EntityFrameworkCore.Migrations;

namespace GursoyCNCBakim.Data.Migrations
{
    public partial class EkleBakimHizmetiGenelBakimHizmetiDetayBakimHizmetiKart : Migration
    {
        protected override void Up(MigrationBuilder migrationBuilder)
        {
            migrationBuilder.CreateTable(
                name: "BakimHizmetiGenel",
                columns: table => new
                {
                    Id = table.Column< int>(nullable: false)
                        .Annotation("SqlServer:Identity", "1, 1"),
                    MakineSayacSaat = table.Column< double>(nullable: false),
                    ToplamFiyat = table.Column< double>(nullable: false),
                    Detaylar = table.Column< string>(nullable: true),
                    EklendigiTarih = table.Column< DateTime>(nullable: false),
                    MakineId = table.Column< int>(nullable: false)
                },
                constraints: table =>
                {
                    table.PrimaryKey("PK_BakimHizmetiGenel", x => x.Id);
                    table.ForeignKey(
                        name: "FK_BakimHizmetiGenel_Makine_MakineId",
                        column: x => x.MakineId,
                        principalTable: "Makine",
                        principalColumn: "Id",
                        onDelete: ReferentialAction.Cascade);
                });

            migrationBuilder.CreateTable(
                name: "BakimHizmetKart",
                columns: table => new
                {
                    Id = table.Column< int>(nullable: false)
                        .Annotation("SqlServer:Identity", "1, 1"),
                    MakineId = table.Column< int>(nullable: false),
                    BakimTipiId = table.Column< int>(nullable: false)
                },
                constraints: table =>
                {
                    table.PrimaryKey("PK_BakimHizmetKart", x => x.Id);
                    table.ForeignKey(
                        name: "FK_BakimHizmetKart_BakimTipi_BakimTipiId",
                        column: x => x.BakimTipiId,
                        principalTable: "BakimTipi",
                        principalColumn: "Id",
                        onDelete: ReferentialAction.Cascade);
                    table.ForeignKey(
                        name: "FK_BakimHizmetKart_Makine_MakineId",
                        column: x => x.MakineId,
                        principalTable: "Makine",
                        principalColumn: "Id",
                        onDelete: ReferentialAction.Cascade);
                });

            migrationBuilder.CreateTable(
                name: "BakimHizmetiDetay",
                columns: table => new
                {
                    Id = table.Column< int>(nullable: false)
                        .Annotation("SqlServer:Identity", "1, 1"),
                    BakimHizmetiGenelId = table.Column< int>(nullable: false),
                    BakimTipiId = table.Column< int>(nullable: false),
                    BakimFiyati = table.Column< double>(nullable: false),
                    BakimAdi = table.Column< string>(nullable: true)
                },
                constraints: table =>
                {
                    table.PrimaryKey("PK_BakimHizmetiDetay", x => x.Id);
                    table.ForeignKey(
                        name: "FK_BakimHizmetiDetay_BakimHizmetiGenel_BakimHizmetiGenelId",
                        column: x => x.BakimHizmetiGenelId,
                        principalTable: "BakimHizmetiGenel",
                        principalColumn: "Id",
                        onDelete: ReferentialAction.Cascade);
                    table.ForeignKey(
                        name: "FK_BakimHizmetiDetay_BakimTipi_BakimTipiId",
                        column: x => x.BakimTipiId,
                        principalTable: "BakimTipi",
                        principalColumn: "Id",
                        onDelete: ReferentialAction.Cascade);
                });

            migrationBuilder.CreateIndex(
                name: "IX_BakimHizmetiDetay_BakimHizmetiGenelId",
                table: "BakimHizmetiDetay",
                column: "BakimHizmetiGenelId");

            migrationBuilder.CreateIndex(
                name: "IX_BakimHizmetiDetay_BakimTipiId",
                table: "BakimHizmetiDetay",
                column: "BakimTipiId");

            migrationBuilder.CreateIndex(
                name: "IX_BakimHizmetiGenel_MakineId",
                table: "BakimHizmetiGenel",
                column: "MakineId");

            migrationBuilder.CreateIndex(
                name: "IX_BakimHizmetKart_BakimTipiId",
                table: "BakimHizmetKart",
                column: "BakimTipiId");

            migrationBuilder.CreateIndex(
                name: "IX_BakimHizmetKart_MakineId",
                table: "BakimHizmetKart",
                column: "MakineId");
        }

        protected override void Down(MigrationBuilder migrationBuilder)
        {
            migrationBuilder.DropTable(
                name: "BakimHizmetiDetay");

            migrationBuilder.DropTable(
                name: "BakimHizmetKart");

            migrationBuilder.DropTable(
                name: "BakimHizmetiGenel");
        }
    }
}

update-database komutunu yazıyorum.

Database tarafına baktığımda da ilgili classlara ilişkin olarak tablolarım ve alanlarım gelmiş durumda.

Bir sonraki derste görüşmek üzere.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir