protected override void OnModelCreating(DbModelBuilder modelBuilder) { //Conventions modelBuilder.Conventions.Remove <System.Data.Entity.ModelConfiguration.Conventions.PluralizingTableNameConvention>(); modelBuilder.Conventions.Remove <System.Data.Entity.ModelConfiguration.Conventions.PluralizingEntitySetNameConvention>(); //Schema string defaultSchema = "dbo"; modelBuilder.HasDefaultSchema(defaultSchema); modelBuilder.SetEntitySchema("Addressing", typeof(City), typeof(Province)); //Keys modelBuilder.Entity <Student>().HasKey(e => e.Id).Property(e => e.Id) .HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity); modelBuilder.Entity <City>().HasKey(e => e.Id).Property(e => e.Id) .HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity); modelBuilder.Entity <Province>().HasKey(e => e.Id).Property(e => e.Id) .HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity); modelBuilder.Entity <StudentView>().HasKey(e => e.Id); //Relationships modelBuilder.Entity <City>().HasMany <Student>(e => e.Student).WithOptional(e => e.City).HasForeignKey(e => e.CityRef); //ComplexTypes modelBuilder.ComplexType <fnGetNamesResult>(); modelBuilder.AddComplexTypes ( typeof(fnGetNamesResult), typeof(spGetNamesResult), typeof(fnGetStudentsResult), typeof(spGetStudentsResult), typeof(spGetNamesAndCityNamesResult), typeof(spGetNamesAndCityNamesResult2) ); //modelBuilder.AddComplexTypes(typeof(Student).Assembly); //Function Conventions modelBuilder.AddFunctions <DBTestDbContext>(defaultSchema); base.OnModelCreating(modelBuilder); }