数据未播种到数据库中

时间:2019-11-23 16:49:43

标签: c# asp.net asp.net-mvc entity-framework

我正在关注有关文档的教程,以尝试创建自己的数据库。数据使用3个表正确播种,现在我添加了6个表,无法获取数据。我尝试创建迁移并更新数据库。我确实将一些“删除级联”更改为“不删除无操作”,因为我在级联过程中遇到错误,而且我不确定这是否是播种失败的原因。

作为参考,以前使用的表“ Car”,“ PaymentPlan”和“ SalesMan”

初始化代码:

using GarageSales.Data;
using GarageSales.Models;
using System;
using System.Linq;

namespace GarageSales.Data
{
    public static class DbInitializer
    {
        public static void Initialize(GarageSalesContext context)
        {
            //context.Database.EnsureCreated();

            // Look for any Cars.
            if (context.Cars.Any())
            {
                return;   // DB has been seeded
            }

            var Customers = new Customer[]
            {
                new Customer{FirstName="Ray", LastName="Easton", Gender="Male", Address="2 Church Road", PostCode="BT35 0JW", RentalID=1, CarID=1, SalesManID=1},
                new Customer{FirstName="Amelie", LastName="Bush", Gender="Female", Address="54 Beach Gardens", PostCode="BT34 0JE", RentalID=2, CarID=2, SalesManID=2},
                new Customer{FirstName="Ray", LastName="Easton", Gender="Male", Address="2 Church Road", PostCode="BT67 0JW", RentalID=3, CarID=3, SalesManID=3}
            };
            foreach (Customer customer in Customers)
            {
                context.Customer.Add(customer);
            }
            context.SaveChanges();

            var Cars = new Car[]
            {
                new Car{Model="I8",Manufacturer="BMW",EngineSize="1.5 L 3-cylinder"},
                new Car{Model="A5",Manufacturer="Audi",EngineSize="5.2 L V10"},
                new Car{Model="R8",Manufacturer="Audi",EngineSize="1.5 L 3-cylinder"}
            };
            foreach (Car car in Cars)
            {
                context.Cars.Add(car);
            }
            context.SaveChanges();

            var SalesMen = new SalesMan[]
            {
                new SalesMan{FirstName="Darren",SurName="Dooning"},
                new SalesMan{FirstName="Jim",SurName="Campbell"},
                new SalesMan{FirstName="Jade",SurName="Mull"},
            };
            foreach (SalesMan SalesMan in SalesMen)
            {
                context.SalesMen.Add(SalesMan);
            }
            context.SaveChanges();

            var Rentals = new Rental[]
            {
                new Rental{Price=150, Duration=36, Quote=3500, CustomerID=1, CarID=1, SalesManID=1},
                new Rental{Price=200, Duration=24, Quote=2000, CustomerID=2, CarID=2, SalesManID=2},
                new Rental{Price=400, Duration=12, Quote=4500, CustomerID=3, CarID=3, SalesManID=3}
            };
            foreach (Rental Rental in Rentals)
            {
                context.Rental.Add(Rental);
            }
            context.SaveChanges();

            var PaymentPlans = new PaymentPlan[]
            {
                new PaymentPlan{CarID=1,SalesManID=1},
                new PaymentPlan{CarID=2,SalesManID=2},
                new PaymentPlan{CarID=3,SalesManID=3}
            };
            foreach (PaymentPlan PaymentPlan in PaymentPlans)
            {
                context.PaymentPlans.Add(PaymentPlan);
            }
            context.SaveChanges();

            var Duration = new Duration[]
           {
                new Duration{DurationLength=36, RentalID=1, SalesManID=1},
                new Duration{DurationLength=24, RentalID=2, SalesManID=2},
                new Duration{DurationLength=12, RentalID=3, SalesManID=3}
           };
            foreach (Duration duration in Duration)
            {
                context.Duration.Add(duration);
            }
            context.SaveChanges();
        }
    }
}

Context类(数据集是我后来想到的2种不同方法,必须进行更改以使程序运行):

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.EntityFrameworkCore;
using GarageSales.Models;

namespace GarageSales.Data
{
    public class GarageSalesContext: DbContext
    {
        public GarageSalesContext (DbContextOptions<GarageSalesContext> options)
            : base(options)
        {
        }

        public DbSet<Car> Cars { get; set; }
        public DbSet<PaymentPlan> PaymentPlans { get; set; }
        public DbSet<SalesMan> SalesMen { get; set; }

        public DbSet<GarageSales.Models.Customer> Customer { get; set; }
        public DbSet<GarageSales.Models.Duration> Duration { get; set; }
        public DbSet<GarageSales.Models.Rental> Rental { get; set; }

        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            modelBuilder.Entity<Car>().ToTable("Car");
            modelBuilder.Entity<PaymentPlan>().ToTable("PaymentPlan");
            modelBuilder.Entity<SalesMan>().ToTable("SalesMan");
            modelBuilder.Entity<Duration>().ToTable("Duration");
            modelBuilder.Entity<Rental>().ToTable("Rental");
            modelBuilder.Entity<Customer>().ToTable("Customer");
        }
    }
}

如果您需要更多信息,请询问

0 个答案:

没有答案