List each database's default schema on the Settings runtime values page
The page said the default schema was per-database but no page gave the MySQL or Oracle value. The table comes from
each reader's DefaultSchema method in Efrpg.
sjh37
committed
Sep 10, 2026
98a4e2d
Fix broken wiki links to missing Settings Reference sections and pages
Settings Reference is now a single A to Z table, so links to its old per-setting anchors landed at the top of the
page. Links to settings documented on a shared page, such as Settings.HiLoSequences, pointed at pages that do not
exist. Both now go to the page and section that document the setting.
sjh37
committed
Sep 10, 2026
c42e8f4
Remove the duplicate H1 title from wiki pages and deep-link Settings Reference entries
GitHub Wiki already renders the page name as the title, so a leading # heading made it appear twice. Home keeps its
heading as it names the project rather than repeating "Home". Settings Reference rows for settings documented on a
shared page now link to the relevant section.
sjh37
committed
Sep 10, 2026
678893f
Updated Settings.PrependSchemaName (markdown)
sjh37
committed
Sep 10, 2026
ed38829
Move links to the ReversePOCO organisation
sjh37
committed
Sep 8, 2026
05c720c
Remove GenerationLanguage, FileExtension, IncludeQueryTraceOn9481Flag and FilterCount
The FileExtension page goes, the CommandTimeout page covers only the timeout, the trace-flag advice leaves
the SQL Server page, and the upgrade guide lists thirteen assignments to delete. Settings index regenerated.
sjh37
committed
Sep 8, 2026
8fec38c
Remove Settings.GeneratorType from every page
TemplateType alone decides which generator runs in v4. The pairing tables and assignments go, the upgrade
guide lists it as the tenth removed setting, and the settings index is regenerated.
sjh37
committed
Sep 7, 2026
8fa035a
Add the scaffolder comparison and the JetBrains Rider page
The comparison sets this generator against dotnet ef dbcontext scaffold with generated, drift-checked
samples. The Rider page covers setup without the extension and the differences from Visual Studio. Home,
the sidebar and the upgrade guide link to them; the upgrade guide now leads with the right-click command.
sjh37
committed
Sep 7, 2026
f9f1073
added a comparison to Ms Scaffolder
sjh37
committed
Sep 7, 2026
736209f
Upgrade guide: step 4d lists the nine settings v4 removed
The numbered steps stopped at 4c, so a hand upgrade ended with nine compile errors that only the
prose at the bottom of the page explained. Step 4d lists the assignments to delete, notes the four
delegates run to their closing brace, and says the right-click command does all of step 4.
sjh37
committed
Sep 6, 2026
1e42117
Filtering: the filter class is DbContextFilter now
SingleContextFilter was folded into DbContextFilter once multi-context generation went, and the
page's heading no longer needs to say which kind of generation it is about.
sjh37
committed
Sep 6, 2026
fca7921
Remove the pages for features v4 dropped
Multi-context generation, file-based templates and the custom generator were removed before the v4
release. Their five pages go; the upgrade page gains a Removed in v4 section saying what went, why,
and that v3 stays downloadable. The page that also documented FileExtension and GenerationLanguage
becomes Settings.FileExtension, and Settings-Reference is regenerated.
sjh37
committed
Sep 6, 2026
7445af7
Stub the generator version in the GeneratedCode sample
Regenerated after the version was stubbed to v4.x.x, so this snippet no
longer changes on every release.
sjh37
committed
Aug 30, 2026
27135fa
Complete the per-setting pages, and turn Settings-Reference into the index
Twenty more pages, covering the settings that were left. All 118
settings on Settings now have a page, and Settings-Reference.md is a
generated A-Z table linking each name to it.
Settings that are always set together share a page: the five class
modifier settings, the two collection settings, the three connection
string settings, the folder settings, the namespace settings, the enum
settings, the four MultiContextAllFields callbacks, and the read-only
runtime values. The index links every setting name, so the reader never
needs to know which page a setting lives on.
Filtering gains generated before-and-after output for IncludeViews, and
RowVersion-and-TimeStamp-columns gains the generated entity, both
checked by the drift test like the rest.
The sidebar now points at the index rather than listing pages, and
Settings-Callbacks keeps its pipeline overview above links to the
individual callback pages.
sjh37
committed
Aug 30, 2026
8b9f255
Add pages for the core, namespace, view and relationship settings
Nine more, several of them shared pages for settings that only make
sense read together: the three provider/template settings, the three
connection string settings, the namespace settings, the enum settings,
the folder settings, and the two nullability spelling settings.
Plus ViewProcessing, AddExtraForeignKeys, UseMappingTables and the
timeout pair.
ViewProcessing is the one worth reading. A view has no primary key, so
the generator falls back to treating every non-nullable column as part
of a composite key - which silently makes EF de-duplicate rows that are
not duplicates.
sjh37
committed
Aug 30, 2026
2b473a3
Add pages for the modifier, collection, schema and stored proc settings
Five more: the five class modifier settings on one page, the two
collection settings on another, GenerateHasDefaultValueSql,
PrependSchemaName and UsePropertiesForStoredProcResultSets.
Two facts worth having written down. The collection interface must be
assignable from the concrete type, so IList with HashSet does not
compile and the generator does not check. And
UsePropertiesForStoredProcResultSets does nothing at all on a
single-result-set procedure, which is why people report it as broken.
sjh37
committed
Aug 30, 2026
e061eea
Add per-setting pages for file layout and the DbContext
Ten more: GenerateSeparateFiles, UseRegions, UsePragma, UseResharper,
IncludeCodeGeneratedAttribute, and shared pages for the header/footer
text settings, the two DbContext name settings, the two base class
settings, and AddUnitTestingDbContext with FakeDbContextInDebugOnlyMode.
Settings that are always set together, or that only make sense read
together, share a page. Four separate stubs saying 'see the other one'
would be worse documentation than one page that explains the pair.
UseResharper's page leads with the fact that the shipped Database.tt
sets it true while the class initialiser says false.
sjh37
committed
Aug 30, 2026
663c5c5
Add per-setting pages for the POCO shape settings
Ten more: UsePascalCase, UseDataAnnotations, UsePropertyInitialisers,
UseLazyLoading, AllowNullStrings, IncludeColumnsWithDefaults,
IncludeFieldNameConstants, OrderProperties, TableSuffix, and a shared
page for IncludeComments and IncludeExtendedPropertyComments.
The two comment settings share a page because they take the same enum
and the useful thing to say is why their defaults differ - schema facts
at the end of the line, human descriptions in a summary block.
sjh37
committed
Aug 30, 2026
6c44645
Add per-setting pages for the callbacks and the undocumented settings
Twelve more pages. Every generated code block is produced by
Generator.Tests.Unit/DocSamples and checked by WikiSnippetDriftTests.
The previously undocumented ones are the point of this batch:
PrependSchemaNameForStoredProcedure, AddOwnedEntityMappings, the four
MultiContextAllFields*Processing callbacks, and a shared page for the
runtime values - Root, TemplateFile, FilterCount and
DefaultConstructorArgument - which appear in examples across five other
pages and were explained on none.
The four MultiContextAllFields callbacks share one page rather than
having four near-identical ones. They differ only in which object they
hand you.
ForeignKeyName documents all six attempt numbers. The wiki previously
said five, and attempt 6 is the one whose answer is used whether it
collides or not.
sjh37
committed
Aug 30, 2026
edf7919
Add the first five per-setting pages
One page per setting, each showing the generated code before and after.
Every code block marked <!-- docsample: ... --> is generated by
Generator.Tests.Unit/DocSamples in the generator repository and checked
by WikiSnippetDriftTests, so it cannot quietly stop being true.
New: ElementsToGenerate, UpdateColumn, UsePrivateSetterForComputedColumns,
and PrependSchemaNameForTable - the last of which is in Settings.cs but
in neither Database.tt nor the wiki, so nobody could have found it.
OnConfiguration is rewritten to the same template. Its IConfiguration
example had already drifted: the generated field is nullable.
Settings-Reference and Settings-Callbacks link to the new pages and keep
their existing anchors.
sjh37
committed
Aug 30, 2026
dab7a1f
Correct the wiki against the v4 codebase
Removes documented APIs that do not exist, fixes behaviour described
backwards, and updates pages still describing v3.
Fabricated: Settings.ForeignKeyNamingStrategy and its enum, and
Settings.ApplyColumnCustomizations. Neither is in either repository.
Filtering: filters are OR'd via Any(), not applied in sequence, and
multiple RegexIncludeFilters are merged into one alternation first.
Settings.ColumnIdentity: the shipped default returns empty for MySQL
because Pomelo has no UseIdentityColumn, and honours HiLoSequences;
the old example broke both.
Schema prefixing: the schema is prepended verbatim and the table is
singularised, so billing.Orders is billing_Order, not Billing_Orders.
Defaults now follow Database.tt rather than the class initialiser,
which differ for DisableGeographyTypes, UseResharper and the folder
settings. NullableReverseNavigationProperties was simply wrong.
Also: MySQL and Oracle do read column comments through the extended
property pipeline; PostgreSQL result models cover set-returning
functions only; CommentsStyle is not a flags enum; GenerationLanguage
has a Javascript member; sp_describe_first_result_set is never used;
the DbContext is not sealed, just not partial; and there is no EnvDTE
dependency left for the scripty page to object to.
Fills in eleven settings that ship in Database.tt but were undocumented,
and adds a per-database DefaultSchema table - SQL Server uses
SCHEMA_NAME(), not a hardcoded dbo.
sjh37
committed
Aug 30, 2026
bcc39c0
Oracle: use an obvious placeholder in the GRANT example
efrpg_reader implied a dedicated read-only account the generator never
asks for, and contradicted the note below it about connecting as the
schema owner.
sjh37
committed
Aug 30, 2026
28d0717
Oracle: rewrite the synonyms and stored proc result model notes
The synonyms row carried the wording from the generator repo's internal TODO.md
("ALL_SYNONYMS is there whenever somebody asks for it"), which reads as a shrug
in user-facing documentation. Replaced with a section that says what actually
happens - FilterSettings.IncludeSynonyms is SQL Server only and has no effect on
Oracle - and gives two workarounds: generate against the owning schema, or
create a view over the synonym. Links to issue #886, which tracks the work.
Also dropped "a candidate for a future release" from the stored procedure result
model note. That is a roadmap commitment the wiki should not be making.
sjh37
committed
Aug 30, 2026
883efde
Update documentation for v4
Database pages: PostgreSQL, MySQL, Oracle and SQLite were entirely GAC and
machine.config setup instructions, and MySQL and Oracle still said "under
development". Replaced with dialect guides covering connection strings,
permissions, what the reader supports, type mapping and quirks. Each opens by
telling v3 users to undo the GAC and machine.config changes. Added a SQL Server
page for symmetry.
ConnectionString: expanded from the environment variable note to worked
examples for all five databases (Azure and Entra ID, RDS, PlanetScale, TNS and
wallets, sockets), a per-database permissions table, the SET FMTONLY execute
requirement, and three ways to keep the string out of source control.
Home: SQL Server CE was listed as fully supported, MySQL and Oracle as under
development, Plugin as available, and Settings.FileManagerType appeared in all
four recommended-settings blocks. The Quick Start never mentioned installing
the efrpg tool, so anyone following it on v4 failed immediately. Fixed, and
added an index of the rest of the wiki.
Removed the settings that no longer exist from Common Settings Types Explained
and Settings Reference: DatabaseType.SqlCe, DatabaseType.Plugin,
Settings.DatabaseReaderPlugin and Settings.FileManagerType. Updated stale
EF.Reverse.POCO.v3.ttinclude references in five pages.
Fixed pre-existing broken cross-links: three pages linked to
Custom-file-based-templates when the page name contains U+2010, Migrations
linked to "scripty" rather than "script", and seven links had case mismatches.
Renamed Syntax-Colour-*.TT-and-*.TTINCLUDE-files to Syntax-Colour-for-T4. The
asterisks are illegal in an NTFS filename, so the wiki could not be cloned or
pulled on Windows without disabling core.protectNTFS.
Deleted Upgrading-from-v2-to-v3, superseded by Upgrading-from-v3-to-v4.
Added _Sidebar for navigation.
sjh37
committed
Aug 30, 2026
47c877c
Updated Upgrading from v3 to v4 (markdown)
sjh37
committed
Aug 27, 2026
d7f522c
Created Upgrading from v3 to v4 (markdown)
sjh37
committed
Aug 25, 2026
a6f3f9e
Created File-Scoped Namespaces (markdown)
sjh37
committed
Mar 31, 2026
9f93c19
Updated Owned Entities (markdown)
sjh37
committed
Mar 27, 2026
6990cbf
Updated Owned Entities (markdown)
sjh37
committed
Mar 27, 2026
a6a1eab
Updated Full Control Over the Generated Code (markdown)
sjh37
committed
Mar 27, 2026
db67fab