Update database in Entity Frameword Code first

1. create model (class for table)

public class Customer
    {
        [Key]
        public string CustCode { get; set; }
        public string Name { get; set; }
        public string Address1 { get; set; }
  }
2. create DB context:

 public class AMWinDBContext: DbContext
    {
        public AMWinDBContext(): base("AMWinDBContext")
        {        }
        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();

        }
        public virtual DbSet<Customer> Customers { get; set; }
        public virtual DbSet<Employee> Employees { get; set; }
        public virtual DbSet<JobSchedule> JobSchedules { get; set; }
        public virtual DbSet<PartType> PartTypes { get; set; }
        public virtual DbSet<Part> Parts { get; set; }
    }

4. create initial database

 public class AMWinDBInitializer: System.Data.Entity.DropCreateDatabaseIfModelChanges<AMWinDBContext>
    {
        protected override void Seed(AMWinDBContext context)
        {
             var customers = new List<Customer>()
            {
                new Customer() { CustCode="CUST01",Name="Customer test 1",Phone="123456789",Address1="204 Queen st, St Marys",StateAddress="NSW",Email="a1.a.com"},
                new Customer() { CustCode="CUST02",Name="Customer test 2",Phone="223456789",Address1="205 Queen st, St Marys",StateAddress="NSW",Email="a2.a.com"},
                new Customer() { CustCode="CUST03",Name="Customer test 3",Phone="323456789",Address1="206 Queen st, St Marys",StateAddress="NSW",Email="a3.a.com"},
                new Customer() { CustCode="CUST04",Name="Customer test 4",Phone="423456789",Address1="207 Queen st, St Marys",StateAddress="NSW",Email="a4.a.com"},
            };
            customers.ForEach(s => context.Customers.Add(s));
            context.SaveChanges();
....
}

5 run seed database

From the Tools menu, select NuGet Package Manager, and then select Package Manager Console.
In the Package Manager Console window, enter the following command:
  • enable-migrations -ContextTypeName AMWinWebAPI.DAL.AMWinDBContext
  • add-migration Initial
  • update-database
6. In order to update columns or table in DB from code:
- Delete Migration folder in project
- enable-migrations -Force
-add-migration Initial



Comments

Popular posts from this blog

ASP Net API pass parameter frombody

avoid Caching in asp net mvc