/// <summary> /// Creates and configures the <see cref="DbModelBuilder" /> instance that will be used to build the /// <see cref="DbCompiledModel" />. /// </summary> /// <returns> The builder. </returns> public DbModelBuilder CreateModelBuilder() { var versionAttribute = new AttributeProvider().GetAttributes(Owner.GetType()) .OfType <DbModelBuilderVersionAttribute>() .FirstOrDefault(); var version = versionAttribute != null ? versionAttribute.Version : DbModelBuilderVersion.Latest; var modelBuilder = new DbModelBuilder(version); var modelNamespace = EdmUtil.StripInvalidCharacters(Owner.GetType().Namespace); if (!String.IsNullOrWhiteSpace(modelNamespace)) { modelBuilder.Conventions.Add(new ModelNamespaceConvention(modelNamespace)); } var modelContainer = EdmUtil.StripInvalidCharacters(Owner.GetType().Name); if (!String.IsNullOrWhiteSpace(modelContainer)) { modelBuilder.Conventions.Add(new ModelContainerConvention(modelContainer)); } new DbSetDiscoveryService(Owner).RegisterSets(modelBuilder); Owner.CallOnModelCreating(modelBuilder); if (OnModelCreating != null) { OnModelCreating(modelBuilder); } return(modelBuilder); }