-
Notifications
You must be signed in to change notification settings - Fork 226
Full control over the generated code
Simon Hughes edited this page Jul 21, 2016
·
20 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.