Code Generation Addon

Main article about Code Generation addon is here


Code Generation addon makes already pretty easy BGDatabase API even easier. If you use this addon- database will use generated classes instead of basic BGEntity while populating table rows. Each generated class defines additional properties/methods to access the data. (see the full list of generated methods/properties here)

Here is an example: lets assume you have a table named "MyTable" which has one single field: intField of type int.

To access it without CodeGen you would use something like this: var intValue = entity.Get<int>("intField");

As you can see, you should provide field name and field type.

With CodeGen you would use something like this var intValue = entity.intField;

So all fields with their types will be generated for you for maximum ease of use.

The only drawback CodeGen has- you need to regenerate the classes each time you change database structure (e.g. adding/removing tables or fields)

Parameter name Description
Code Generator Class to use for code generation (use default one)
Source file Source file to use for generated C# classes. All classes will be put into one single .cs file, which should be under your project folder
Package Package (C# namespace) for generated classes. For example MySpace. You can safely leave this setting blank.
Class names prefix Prefix to use for each class name. So if you use E_ prefix, the final class for MyTable table will be named E_MyTable. We have multiple code generators, so using different prefixes for different code generators helps to differentiate generated classes and avoid naming collisions
Field names prefix Prefix to use for each generated property name. So if you use f_ prefix, the final name for intField field will be f_intField. You can safely leave this setting blank.
Entities prefix [Optional] Optionally, you can generate properties for each entity. After that, you can access each entity directly using these properties. Read more about it here: Generate a property for each entity