Exemple #1
0
        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);
        }