The first 1200 lines or so are essentially static. They provide support classes that are used by any and all class models that we generate. We currently generate these support classes for each model, which will actually cause naming conflicts if you have more than one generated class model in the project. We are exploring a couple of approaches for improving this process.
The generated code consists of two parts: the public interface, and an implementation of that interface. The public interface consists of an abstract classe for each of the primary entities from the model, as well as a "context" interface. The context interface serves as a sort of "controller," providing factory methods for creating instances of each of the abstract classe, and keeping track of these instances.
The implementation currently generated consists of a single context class (that implements the context interface). This class also contains private, nested concrete implementations of each of the abstract entity classes.
To use the code, you should be able to just create an instance of the context class and then go from there. For example, if your model is named "MyModel", the process would be something like:
MyModelContext context = new MyModelContext();
context.CreatePerson(/* appropriate parameters here */);
etc.