internal static void ScaffoldDataRepositories(EntityFrameworkCoreProject project) { var projectSelection = project.GlobalSelection(); if (!string.IsNullOrEmpty(projectSelection.Settings.ConcurrencyToken)) { projectSelection.Settings.InsertExclusions.Add(projectSelection.Settings.ConcurrencyToken); projectSelection.Settings.UpdateExclusions.Add(projectSelection.Settings.ConcurrencyToken); } ScaffoldRepositoryInterface(project); ScaffoldBaseRepositoryClassDefinition(project); ScaffoldRepositoryExtensionsClassDefinition(project); foreach (var projectFeature in project.Features) { var repositoryClassDefinition = projectFeature.GetRepositoryClassDefinition(); project.Scaffold(repositoryClassDefinition, project.GetDataLayerRepositoriesDirectory()); var repositoryInterfaceDefinition = repositoryClassDefinition.RefactInterface(); repositoryInterfaceDefinition.Namespace = project.GetDataLayerContractsNamespace(); repositoryInterfaceDefinition.Implements.Add("IRepository"); project.Scaffold(repositoryInterfaceDefinition, project.GetDataLayerContractsDirectory()); } }