Install-Package EntityFramework
using System.Data.Entity; namespace NerdDinner.Domain { public class SiteDb : DbContext { public DbSet<Dinner> Dinners { get; set; } public DbSet<RSVP> RSVPs { get; set; } } }
web.config
<connectionStrings> <add name="SiteDb" connectionString="Data Source=.;Initial Catalog=NerdDinners;Integrated Security=SSPI;" providerName="System.Data.SqlClient" /> </connectionStrings>
Application_Start()
Global.asax.cs
if (System.Diagnostics.Debugger.IsAttached) Database.SetInitializer<SiteDb>(new DropCreateDatabaseIfModelChanges<SiteDb>());
if (System.Diagnostics.Debugger.IsAttached) Database.SetInitializer<SiteDb>(new SiteDbInitializer());
<configuration> . . . <entityFramework> <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" /> <contexts> <context type="CompanyName.ProjectName.Data.MyDomain, CompanyName.ProjectName.Data"> <databaseInitializer type="System.Data.Entity.MigrateDatabaseToLatestVersion`2[[CompanyName.ProjectName.Data.MyDomain, CompanyName.ProjectName.Data], [CompanyName.ProjectName.Data.Migrations.Configuration, CompanyName.ProjectName.Data]], EntityFramework" /> </context> </contexts> </entityFramework> . . . </configuration>
using System.Data.Entity; . . . public class SiteDbInitializer : DropCreateDatabaseIfModelChanges<SiteDb> { protected override void Seed(SiteDb context) { var dinners = new List<Dinner> { new Dinner { Title = "Sample Dinner 1", EventDate = new DateTime(2012,12,31), Address = "One Microsoft Way", Country = "USA", HostedBy = "scottgu@microsoft.com" }, new Dinner { Title = "Sample Dinner 2", EventDate = new DateTime(2013,5,31), Address = "Somewhere Else", Country = "USA", HostedBy = "scottgu@microsoft.com" } }; dinners.ForEach(d => context.Dinners.Add(d)); } }
DbContext
protected override void OnModelCreating(DbModelBuilder modelBuilder) { base.OnModelCreating(modelBuilder); modelBuilder.Conventions.Remove<PluralizingTableNameConvention>(); }
update-database -script