Skip to content

Releases: sjh37/EntityFramework-Reverse-POCO-Code-First-Generator

v3.10.0

29 Jan 15:57
Compare
Choose a tag to compare
  • Added EF Core 9 support
  • #849 Added support for ARM64 processor. Thanks to Rob.
  • Removed EF Core 7 (See support planning wiki)
  • Added support property for resultsets. Thanks to Frederic.
  • #821 Enable command timeout override. Thanks to Frederic.
    With this adjustment, it is possible to override the default commandtimeout at runtime which can be necessary for specific stored procedures.
_context.Database.CommandTimeout = 300;
return _context.spMyHeavyStoredProcedure.FirstOrDefault();
  • #820 Support resultset as property instead of a field in a stored procedure return model.
  • #621 Generate async methods (PR #797). Thanks to Erwin Bovendeur.
  • #819 Added "IsSynonym" property to Table class. Thanks to grantparker77.
  • #826 Allow table with periods. Periods in table names are replaced with an underscore.
  • #37 Merge duplicate stored procedure result sets. A new setting flag which defaults to true. This will cause the generator to inspect multiple result sets to see if they are all identical. If they are all identical, the duplicates will be removed, leaving a single model.
Settings.MergeMultipleStoredProcModelsIfAllSame = true;
  • #832 Add more data annotations.
[Table("table-name", Schema = "schema-name")]
  • #838 You can now generate multiple enums from a single table that contains a grouping field. Thanks to Ryan Plemons.
  • Inflector to correctly handle words and tables ending with: Status, To and Data.
  • Added more examples of adding base classes.
  • #834 SQLite - Support multiple foreign keys. Thanks to statler.
  • #298 Forward the cancellationToken parameter to the ToListAsync methods (PR #842). Thanks to mhartmair-cubido.
  • Enable more granular prepend schema support on a table and stored procedure level (PR #824). Thanks to dsfr-be and Frederic.
/// <summary>
/// Enables more granual control if the schema name should be prepend depending on the table
/// </summary>
public static Func<Table, bool> PrependSchemaNameForTable = (table) => {
    return true;
};

/// <summary>
/// Enables more granual control if the schema name should be prepend depending on the proc
/// </summary>
public static Func<StoredProcedure, bool> PrependSchemaNameForStoredProcedure = (prod) => {
    return true;
};
  • #822 Intercept stored procedure return model creation. Thanks to Frederic Desmyter.
// Enable interception of stored procedure return model when an exception occurs. Typically, when the stored procedure contains temp tables.
// This allows you render the proper error in comments or fix the return model by manually creating the ReturnModel using a list of DataColumns
public static Action<Exception, StoredProcedure> ReadStoredProcReturnObjectException = delegate (Exception ex, StoredProcedure sp)
{
    // Example
    /*if (!sp.ReturnModels.Any() && ex.Message.StartsWith("Invalid object name", StringComparison.OrdinalIgnoreCase))
    {
        if (sp.NameHumanCase.Equals("YourProcNameHere", StringComparison.OrdinalIgnoreCase))
        {
            sp.ReturnModels.Add(new List<DataColumn>
            {
                new DataColumn("Id", typeof(int)) { AllowDBNull = false, Unique = true },
                new DataColumn("Description", typeof(string))
            });
        }
    }*/
};

// Enable interception of stored procedure return model
public static Action<StoredProcedure> ReadStoredProcReturnObjectCompleted = delegate (StoredProcedure sp)
{
    // Example of how to add a row processed boolean column to a stored procedure's return model
    /*if (sp.ReturnModels.Any() && sp.NameHumanCase.Contains("process"))
    {
        var rm = sp.ReturnModels.First();
        rm.Add(new DataColumn("RowProcessed", typeof(bool)) { AllowDBNull = false });
    }*/
};

v3.9.0

19 Nov 21:39
Compare
Choose a tag to compare
  • #817 Added support for EFCore 8.
  • #813 Added support for remote database synonyms where tables have a trigger.
  • Deprecated EFCore 2 and 5. See Support planning for information on retirements.

v3.8.4

28 Jun 17:30
Compare
Choose a tag to compare
  • #807 Correct SQL for Azure stored procedures
  • #805 IDbContext not including System.Data namespace. Thanks to Greg Bartlett.
  • EF6 - Check for Spatial types and include System.Data.Entity.Spatial

v3.8.3

18 May 22:35
Compare
Choose a tag to compare
  • Improved support for SQLite.
  • Speeded up adding in a generator .tt settings file by not trying to immediately open a not yet defined database.

v3.8.2

08 May 16:44
Compare
Choose a tag to compare
  • #736 Better PostgreSQL types support. Thanks to uyau.
  • #568 Add support for SQLite. Thanks to Statler.
  • #741 IncludeFieldNameConstants. Thanks to MarkLFT
  • #693 Support for temporal tables. Thanks to FaizulHussain
  • #802 Use .HasTrigger() for tables with computed columns for EF Core 7. Thanks to MarkLFT
  • Add installation support for Visual Studio running on a MacOS using Parallels.

v3.8.1

19 Apr 16:13
Compare
Choose a tag to compare
  • #786 Settings.UseLazyLoading = false by default. Thanks to Neal Culiner.
  • #782 Add support for memory-optimised tables.
  • Added a file audit service. You will now see a new file generated each time you save the <database>.tt file. This audit file is used to record which files were generated and at what time. Please do not edit this file as it is used to delete files that may get filtered out during the next run. Audit files are named <database>Audit.txt.
  • #774 Optional parameters in stored procedure. Thanks to @NeilN1
  • #791 Add support for FileBasedEf6 templates. Thanks to @Techhead33
  • #793 Do not use builder.HasKey on derived types where the PK columns are hidden. Thanks to Måns Tånneryd.
  • #780 Filter sequences to just those required. Thanks to @MarkLFT

v3.8.0

06 Dec 17:16
Compare
Choose a tag to compare
  • Added support for EF Core 7. This update will now check for database triggers and identify these tables to EF Core 7. EF Core 7 will generate more efficient SQL that is faster to execute but is not compatible if a trigger is on the table. If EF 7 knows there is a trigger on the table, it will revert to using standard SQL (as generated by EF Core 6).
  • Fix for non-PascalCased foreign keys ending in _id. Thanks to Bryan Tichy.
  • Include call to .UseLazyLoadingProxies() if Settings.UseLazyLoading = true. Please install the Microsoft.EntityFrameworkCore.Proxies NuGet package.

v3.7.0

24 Oct 21:38
Compare
Choose a tag to compare
  • #765 Exclude .HasColumnType for user-defined types such as Postgres PostGIS. Thanks to @afust003
  • #769 Using stored procedure OUT parameters with multiple result sets.
  • Bug fix - Non-pascal casing could potentially leave a hanging symbol. Thanks to Bryan Tichy.
  • Display name enhancements.
  • Remove DefaultCollation setting.
  • Append ";Encrypt=false;TrustServerCertificate=true" to the connection string.
  • Corrected grammar in comments.

v3.6.1

26 Jun 21:15
Compare
Choose a tag to compare
  • #754 Exclude mobelBuilder command if table valued function declared in StoredProcedureReturnTypes. Thanks to erwin-faceit.
  • #753 Fix for ROWVERSION and TIMESTAMP columns. Thanks to Neal Culiner.
  • #762 Auto generate the standard templates that can be customised. If you want to fully customise your output you can use custom templates. The standard ones used within the generator are now generated and placed in this folder. More info available here. Thanks to rebeccapowell.
  • #748 Generate a property type as a Enumeration from a foreign key. Thanks to James00-Fast.

v3.6.0

13 Feb 17:36
Compare
Choose a tag to compare
  • Now supports EFCore 6
  • #739 Add ability to automatically add enum tables programatically. See AddEnum() callback. Read the Wiki here.
  • #389 Generate files in sub-folders. This has been a long awaited for feature!
  • #727 Add categories to unit tests and separate tests by db type.
  • #726 Add PostgreSQL for creating northwind database.