All summaries of entities, properties, and enums will be added as comments on the corresponding database tables and columns.
- Automatically adds table comments from entity class summaries.
- Adds column comments from property summaries.
- Supports enum types as column comments.
- Works with SQL Server and PostgreSQL.
- Easy to integrate into your EF Core project using a single extension method.
dotnet add package EFCommenterEnable XML documentation in your project by adding this to your .csproj:
<PropertyGroup>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
</PropertyGroup>Then, call the extension method in your DbContext:
using EFCommenter;
using Microsoft.EntityFrameworkCore;
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.AddEntitiesComments();
}Your entities and enums include some comments.
/// <summary>
/// The class declered a person!!!
/// </summary>
public class Person
{
public int Id { get; set; }
/// <summary>
/// The full name of the person!!!
/// </summary>
public string Name { get; set; } = "";
public PersonType Type { get; set; }
}
public enum PersonType
{
Admin,
User,
Guest
}In the migration adding, the summaries will be automatically added as table and column comments in the created migration file, and they are ready to update the database comments.
migrationBuilder.CreateTable(
name: "People",
columns: table => new
{
Id = table.Column<int>(type: "int", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
Name = table.Column<string>(type: "nvarchar(max)", nullable: false, comment: "The full name of the person!!!"),
Type = table.Column<int>(type: "int", nullable: false, comment: "0: Admin | \n1: User | \n2: Guest | ")
},
constraints: table =>
{
table.PrimaryKey("PK_People", x => x.Id);
},
comment: "The class declered a person!!!");- Make sure your EF Core project targets .NET 8 or later.
- XML documentation file must be enabled for the summaries to be read.
- Tested with PostgreSQL and SQL Server.