Skip to content

Full control over the generated code

Simon Hughes edited this page Jul 21, 2016 · 3 revisions
  • Specify additional base interfaces for your DB context interface. E.g. IDisposable
  • Specify the base classes for the DB context. E.g. for ASP.NET Identity use IdentityDbContext
  • Specify which connection string to use. The generator will search your whole solution for it.
  • Specify a list of config files for the connection string to be searched for. The config files are searched for in the local project first, then the whole solution second.
  • Customize the name of the configuration classes. “Configuration”, “Mapping”, “Map”, etc. This is appended to the POCO class name to configure the mappings.
  • Ability to make classes partial.
  • Generate separate files, or as a single file.
  • Optionally use CamelCase. This will rename the tables & fields to use CamelCase. If not, then table & field names will be left alone.
  • Optionally include comments. This will add the non CamelCased names of fields, primary keys and foreign keys as comments.
  • Optionally include extended properties as comments. You can also specify if they should appear in a summary block above the field, or at the end of the field. An extended property is the description field in a SQL Server database.
  • Optionally include database Views.
  • Ability to disable geography types. This turns off use of System.Data.Entity.Spatial.DbGeography and System.Data.Entity.Spatial.DbGeometry as OData doesn't support entities with geometry/geography types.
  • Specify what the collection type for navigation properties. “List” (default), "ObservableCollection" for example.
  • Ability to specify what the namespace is for your custom collection type.
  • Specify if you’d like FakeDbContext and FakeDbSet classes adding for easy unit testing.
  • Ability to include the flag “OPTION (QUERYTRACEON 9481)” for use with SQL Server 2014.
  • Ability to specify additional namespaces to include in the generated code.
  • Ability to specify a list of custom DB context interface functions. Set MakeClassesPartial=true, and implement your partial DbContext class functions.
  • Supports Migrations.
  • Supports Stored Procedures and Table Values Functions.
  • Supports cross-database synonym tables.
  • Supports multiple result sets from stored procedures.
  • Supports Pluralisation services such as English and Spanish, etc.
  • Includes support for custom pluralisation dictionaries to override singular/pluralisation of words that are not support by the main pluralisation service.
  • Ability to control exactly what is generated. Such as POCO classes, DB Context, Unit of work (DB Context interface), POCO Configuration/Mapping classes, Stored procedures. This is required for enterprise software where different parts of the configuration can exist in different folders or projects.
  • Control if the schema name is prepended to the table name. This stops name conflicts if the same table name is used in different schemas
  • Ability to filtering tables and stored procedures to just the minimum set you require. This is key to having a fast EntityFramework.
  • Ability to perform table renaming. Such as removing a prefix or certain characters from all the tables. Such as tblOrders to Orders, Shipments_AB to Shipments, etc.
  • Ability to perform column renaming.
  • Ability to perform stored procedure renaming.
  • Ability to generate WCF contracts. This is only intended as a helper, to get you started creating WCF contracts, and to save a lot of typing.
  • The generator uses callbacks when generating code. This allows you to control writing the following:
    • Poco class attributes.
    • Poco base classes.
    • Poco base class body.
    • Poco column / field.
    • Stored procedure function name, function parameters and @parameters.
    • Stored procedure - declaration of the SqlParameters, anonymous array and setting of the SqlParameters.
    • Stored procedure - Setting the name of the return model from a stored procedure, and controlling the field names used in the return model.
You can’t perform that action at this time.