public static void Main(string[] args) { var schema = Convention.CreateSchema <Foo>(s => s.PluralizeTableNames = true, s => { s.Columns.Mapping.Add( "AttributeCount", Mapper .Map("AttributeCount") .ToColumnName("attribute_count") .OnSelect(_ => $@"(SELECT count(*) FROM jsonb_object_keys({ s.Columns.Mapping[nameof(Foo.Attributes)].ColumnName })) as attribute_count") .CreateMapping()); s.Columns.Mapping[nameof(Foo.SequenceNumber)] .OnInsert = e => $@"nextval(seq_{((Dictionary<string, object>)e)[nameof(Foo.TemplateKey)]})"; s.DefaultOrderBy = (propertyName: "AttributeCount", direction: OrderDirection.Descending); });