UmbrellaFrame.ModelSync.Core
1.0.4
dotnet add package UmbrellaFrame.ModelSync.Core --version 1.0.4
NuGet\Install-Package UmbrellaFrame.ModelSync.Core -Version 1.0.4
<PackageReference Include="UmbrellaFrame.ModelSync.Core" Version="1.0.4" />
<PackageVersion Include="UmbrellaFrame.ModelSync.Core" Version="1.0.4" />
<PackageReference Include="UmbrellaFrame.ModelSync.Core" />
paket add UmbrellaFrame.ModelSync.Core --version 1.0.4
#r "nuget: UmbrellaFrame.ModelSync.Core, 1.0.4"
#:package UmbrellaFrame.ModelSync.Core@1.0.4
#addin nuget:?package=UmbrellaFrame.ModelSync.Core&version=1.0.4
#tool nuget:?package=UmbrellaFrame.ModelSync.Core&version=1.0.4
ModelSync
![]()
ModelSync is an attribute-based SQL schema generator for .NET. It lets you define database schema with plain C# classes and generate or execute DDL without Entity Framework or a heavy ORM.
Packages
| Package | Purpose |
|---|---|
UmbrellaFrame.ModelSync.Core |
Shared attributes, interfaces, and SQL builder |
UmbrellaFrame.ModelSync.MySql |
MySQL and MariaDB provider |
UmbrellaFrame.ModelSync.SqlServer |
SQL Server and Azure SQL provider |
UmbrellaFrame.ModelSync.PostgreSQL |
PostgreSQL provider |
UmbrellaFrame.ModelSync.SQLite |
SQLite provider |
UmbrellaFrame.ModelSync.Analyzers |
Roslyn compile-time model validation |
Install
Install only the provider you need:
dotnet add package UmbrellaFrame.ModelSync.MySql
dotnet add package UmbrellaFrame.ModelSync.SqlServer
dotnet add package UmbrellaFrame.ModelSync.PostgreSQL
dotnet add package UmbrellaFrame.ModelSync.SQLite
Optional analyzer package:
dotnet add package UmbrellaFrame.ModelSync.Analyzers
Quick Start
using UmbrellaFrame.ModelSync.Core;
using UmbrellaFrame.ModelSync.MySql;
[MySqlTableName("products")]
public sealed class ProductModel
{
[MySqlColumnType(MySqlColumnType.INT)]
[MySqlColumnPrimaryKey(isAutoIncrement: true)]
public int Id { get; set; }
[MySqlColumnType(MySqlColumnType.VARCHAR, "255")]
[MySqlColumnNotNull]
[DbColumnIndex("idx_products_name")]
public string Name { get; set; } = string.Empty;
[MySqlColumnType(MySqlColumnType.DECIMAL, "10,2")]
[DbColumnDefault("0.00")]
[DbColumnCheck("Price >= 0")]
public decimal Price { get; set; }
}
var generator = new MySqlTableGenerator(
"Server=localhost;Database=appdb;User=root;Password=pass;");
var sql = generator.GenerateMySqlTable<ProductModel>(ifNotExists: true);
var indexes = generator.GenerateIndexSql<ProductModel>();
Console.WriteLine(sql);
foreach (var indexSql in indexes)
{
Console.WriteLine(indexSql);
}
Safe DDL
Additive changes can run directly:
generator.AddColumn<ProductModel>("Stock");
Destructive operations require explicit opt-in:
var allow = DestructiveOperationOptions.Allow();
generator.DropColumn<ProductModel>("LegacyCode", allow);
generator.AlterColumnType<ProductModel>("Price", allow);
generator.DropTables(allow);
Analyzer Rules
| Rule | Description |
|---|---|
MSYNC001 |
Public property is missing a column type attribute |
MSYNC002 |
Class has column attributes but no table name attribute |
MSYNC003 |
Model table has no primary key defined |
Documentation
- Repository: https://github.com/UmbrellaFrameHQ/modelsync
- Quick start: https://github.com/UmbrellaFrameHQ/modelsync/blob/main/docs/02-quickstart.md
- Provider guides: https://github.com/UmbrellaFrameHQ/modelsync/blob/main/docs/04-providers.md
- Examples: https://github.com/UmbrellaFrameHQ/modelsync/tree/main/examples
- Notes VSIX: https://github.com/UmbrellaFrameHQ/modelsync/blob/main/docs/11-notes-extension.md
Notes
ModelSync validates table, column, database, and index identifiers before quoting them. Names with spaces, dots, semicolons, quotes, or hyphens are rejected intentionally.
The Visual Studio Notes extension is distributed as a VSIX from the repository artifacts, not as part of the runtime database provider packages.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Microsoft.Extensions.Logging.Abstractions (>= 8.0.0)
NuGet packages (4)
Showing the top 4 NuGet packages that depend on UmbrellaFrame.ModelSync.Core:
| Package | Downloads |
|---|---|
|
UmbrellaFrame.ModelSync.PostgreSQL
PostgreSQL provider for UmbrellaFrame.ModelSync - attribute-based schema generator. |
|
|
UmbrellaFrame.ModelSync.MySql
MySQL provider for UmbrellaFrame.ModelSync - attribute-based schema generator. |
|
|
UmbrellaFrame.ModelSync.SqlServer
SQL Server provider for UmbrellaFrame.ModelSync - attribute-based schema generator. |
|
|
UmbrellaFrame.ModelSync.SQLite
SQLite provider for UmbrellaFrame.ModelSync - attribute-based schema generator. |
GitHub repositories
This package is not used by any popular GitHub repositories.
NuGet README rendering cleanup, repository links moved to UmbrellaFrameHQ/modelsync, documentation download links refreshed, and integration test publishing workflow improvements.