 <p>You appear to be on the right track - though I don't think you'll be able to get it to ignore the schema in the mapping, short of implementing your own dialect or something like that. Instead, since you're using Fluent NHibernate to generate your mappings, ask it to generate mappings without the schemas. Your ClassMaps, AutoMappingOverrides, and Conventions are all just code, after all. One way to do this would be like so:</p> <p>Create a place to store the setting that can be changed at runtime:</p> <pre><code>public static class MappingOptions { public static readonly ThreadLocal&lt;bool&gt; ForSQLite = new ThreadLocal&lt;bool&gt;(); } </code></pre> <p>Set it before asking FluentNHibernate to generate the mappings, and then check it where needed:</p> <pre><code>public class EmployeeMap : ClassMap&lt;Employee&gt; { public EmployeeMap() { if (!MappingOptions.ForSQLite.Value) Schema("core"); Table("Employee"); // ... other stuff ... } } </code></pre>