Data.Modeler 5.0.54

dotnet add package Data.Modeler --version 5.0.54
                    
NuGet\Install-Package Data.Modeler -Version 5.0.54
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Data.Modeler" Version="5.0.54" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Data.Modeler" Version="5.0.54" />
                    
Directory.Packages.props
<PackageReference Include="Data.Modeler" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Data.Modeler --version 5.0.54
                    
#r "nuget: Data.Modeler, 5.0.54"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Data.Modeler@5.0.54
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Data.Modeler&version=5.0.54
                    
Install as a Cake Addin
#tool nuget:?package=Data.Modeler&version=5.0.54
                    
Install as a Cake Tool

Data.Modeler

Build status

Data.Modeler is a library used to interact with model database schemas in C#. Works with .Net Core.

Basic Usage

In order to use Data.Modeler, you need to first wire up the system with your ServiceCollection. In order to do this, all you need to do is make one method call:

serviceCollection.AddCanisterModules();
				

This line is required prior to using the DataModeler class for the first time. Once Canister is set up, you can call the DataModeler class provided:

var SchemaProvider = DataModeler.GetSchemaGenerator(SqlClientFactory.Instance);

Note that the above gets the schema provider for SQL Server but for other databases you must provide the DbProviderFactory associated with it. You can also start creating a schema:

var Source = DataModeler.CreateSource("MySource");

The "MySource" string is the database name that you wish to use.

Creating a Schema

Once you have your ISource object, you can start adding on to it:

var Table = Source.AddTable("TableName", "dbo");
var Column = Table.AddColumn<int>("ColumnName",DbType.Int32);
var CheckConstraint = Table.AddCheckConstraint("CheckConstraintName", "Check Constraint Definition");
var View = Source.AddView("ViewName","View Creation Code", "dbo");
var Function = Source.AddFunction("FunctionName","Function Creation Code", "dbo");
var StoredProcedure = Source.AddStoredProcedure("StoredProcedureName","Stored Procedure Creation Code", "dbo");

From there the schema provider can be used to either generate the commands needed to create the database or what commands are needed to alter an existing database to the desired schema:

var MyCommands = SchemaProvider.GenerateSchema(DesiredSchema, SourceSchema);

If SourceSchema is null, then it will treat it as the database doesn't exist. If the SourceSchema is not null, it will act as though the database exists and the DesiredSchema is what you want the final schema to look like. Note that deleting columns, tables, etc. is not done by the system. It will, however, generate calls to drop functions, stored procedures, views, constraints, etc. if they need to be updated. Another thing you can do is have the system apply those changes for you:

SchemaProvider.Setup(DesiredSchema,new Connection(Configuration, SqlClientFactory.Instance, "Default"));

The connection object must be fed a IConfiguration object, a DbProviderFactory for the database type you wish it to connect to, and either the name of your connection string in the configuration object or a connection string:

SchemaProvider.Setup(DesiredSchema,new Connection(Configuration, SqlClientFactory.Instance, "Data Source=localhost;Initial Catalog=ExampleDatabase;Integrated Security=SSPI;Pooling=false"));

Adding a ISchemaGenerator

The schema generator is what the system uses to generate the individual commands. Data.Modeler comes with one for SQL Server but in order to add your own you must create a class that inherits from ISchemaGenerator. From there the system will automatically pick up the schema generator and allow you to use it:

var SchemaProvider = DataModeler.GetSchemaGenerator(MyDbFactoryProvider);

Note that you can also create one for SQL Server and the system will actually return the one that you create instead of the one built into the system.

Installation

The library is available via Nuget with the package name "Data.Modeler". To install it run the following command in the Package Manager Console:

Install-Package Data.Modeler

Build Process

In order to build the library you will require the following as a minimum:

  1. Visual Studio 2022

Other than that, just clone the project and you should be able to load the solution and build without too much effort.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on Data.Modeler:

Package Downloads
Inflatable

Inflatable is a simple ORM.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
5.0.54 0 8/5/2025
5.0.53 0 8/5/2025
5.0.52 25 8/1/2025
5.0.51 88 7/28/2025
5.0.50 119 7/17/2025
5.0.49 110 7/17/2025
5.0.48 181 7/15/2025
5.0.47 137 7/14/2025
5.0.46 137 7/14/2025
5.0.45 179 7/8/2025
5.0.44 484 6/30/2025
5.0.43 131 6/30/2025
5.0.42 131 6/30/2025
5.0.41 140 6/27/2025
5.0.40 178 6/27/2025
5.0.39 126 6/27/2025
5.0.38 135 6/27/2025
5.0.37 131 6/27/2025
5.0.36 176 6/26/2025
5.0.35 150 6/18/2025
5.0.34 299 6/10/2025
5.0.33 98 5/30/2025
5.0.32 104 5/23/2025
5.0.31 241 5/14/2025
5.0.30 120 5/2/2025
5.0.29 173 4/28/2025
5.0.28 131 4/11/2025
5.0.27 166 3/17/2025
5.0.26 139 2/24/2025
5.0.25 161 2/12/2025
5.0.24 259 2/3/2025
5.0.23 179 1/30/2025
5.0.22 151 1/29/2025
5.0.21 115 1/29/2025
5.0.20 136 1/28/2025
5.0.19 135 1/24/2025
5.0.18 141 1/23/2025
5.0.17 119 1/23/2025
5.0.16 162 1/16/2025
5.0.15 137 1/15/2025
5.0.14 121 1/14/2025
5.0.13 124 1/13/2025
5.0.12 133 1/10/2025
5.0.11 135 1/9/2025
5.0.10 112 1/8/2025
5.0.9 192 12/17/2024
5.0.8 133 12/17/2024
5.0.7 175 12/10/2024
5.0.6 136 12/9/2024
5.0.5 204 11/26/2024
5.0.4 167 11/26/2024
5.0.3 120 11/25/2024
5.0.2 159 11/24/2024
5.0.1 139 11/23/2024
5.0.0 133 11/23/2024
4.0.268 153 11/19/2024
4.0.267 129 11/11/2024
4.0.266 124 11/6/2024
4.0.265 122 11/5/2024
4.0.264 121 11/4/2024
4.0.263 142 11/1/2024
4.0.262 123 10/31/2024
4.0.261 132 10/30/2024
4.0.260 127 10/29/2024
4.0.259 129 10/29/2024
4.0.258 138 10/25/2024
4.0.257 120 10/24/2024
4.0.256 138 10/21/2024
4.0.255 138 10/16/2024
4.0.254 122 10/15/2024
4.0.253 131 10/11/2024
4.0.252 127 10/10/2024
4.0.251 125 10/9/2024
4.0.250 136 10/8/2024
4.0.249 140 10/2/2024
4.0.248 139 10/1/2024
4.0.247 127 9/30/2024
4.0.246 143 9/27/2024
4.0.245 134 9/24/2024
4.0.244 141 9/23/2024
4.0.243 125 9/23/2024
4.0.242 170 9/17/2024
4.0.241 162 9/10/2024
4.0.240 134 9/9/2024
4.0.239 139 9/6/2024
4.0.238 148 9/5/2024
4.0.237 145 9/3/2024
4.0.236 146 9/2/2024
4.0.235 147 8/30/2024
4.0.234 143 8/29/2024
4.0.233 151 8/28/2024
4.0.232 146 8/27/2024
4.0.231 148 8/26/2024
4.0.230 164 8/23/2024
4.0.229 160 8/22/2024
4.0.228 160 8/21/2024
4.0.227 162 8/20/2024
4.0.226 159 8/20/2024
4.0.225 182 8/19/2024
4.0.224 179 8/16/2024
4.0.223 158 8/15/2024
4.0.222 180 8/14/2024
4.0.221 138 8/5/2024
4.0.220 132 8/2/2024
4.0.219 157 8/1/2024
4.0.218 124 7/31/2024
4.0.217 149 7/26/2024
4.0.216 126 7/25/2024
4.0.215 95 7/24/2024
4.0.214 150 7/11/2024
4.0.213 135 7/10/2024
4.0.212 129 7/9/2024
4.0.211 136 7/9/2024
4.0.210 136 7/8/2024
4.0.209 153 7/5/2024
4.0.208 152 7/5/2024
4.0.207 137 7/2/2024
4.0.206 130 7/1/2024
4.0.205 159 6/27/2024
4.0.204 150 6/26/2024
4.0.203 151 6/25/2024
4.0.202 157 6/24/2024
4.0.201 1,031 6/19/2024
4.0.200 158 6/18/2024
4.0.199 133 6/17/2024
4.0.198 140 6/14/2024
4.0.197 136 6/13/2024
4.0.196 146 6/12/2024
4.0.195 155 6/3/2024
4.0.194 142 5/31/2024
4.0.193 167 5/30/2024
4.0.192 143 5/29/2024
4.0.191 163 5/27/2024
4.0.190 145 5/27/2024
4.0.189 136 5/23/2024
4.0.188 147 5/22/2024
4.0.187 182 5/21/2024
4.0.186 159 5/20/2024
4.0.185 160 5/17/2024
4.0.184 155 5/16/2024
4.0.183 159 5/15/2024
4.0.182 159 5/8/2024
4.0.181 145 5/7/2024
4.0.180 162 5/6/2024
4.0.179 161 5/3/2024
4.0.178 717 5/2/2024
4.0.177 123 5/1/2024
4.0.176 154 4/30/2024
4.0.175 145 4/29/2024
4.0.174 148 4/29/2024
4.0.173 162 4/25/2024
4.0.172 156 4/24/2024
4.0.171 168 4/16/2024
4.0.170 155 4/15/2024
4.0.169 155 4/12/2024
4.0.168 150 4/12/2024
4.0.167 168 4/11/2024
4.0.166 180 4/10/2024
4.0.165 157 4/9/2024
4.0.164 163 4/8/2024
4.0.163 159 4/1/2024
4.0.162 141 3/29/2024
4.0.161 157 3/28/2024
4.0.160 143 3/26/2024
4.0.159 169 3/23/2024
4.0.158 162 3/22/2024
4.0.157 163 3/21/2024
4.0.156 142 3/18/2024
4.0.155 172 3/15/2024
4.0.154 163 3/14/2024
4.0.153 168 3/13/2024
4.0.152 181 3/11/2024
4.0.151 164 3/8/2024
4.0.150 163 3/7/2024
4.0.149 154 3/6/2024
4.0.148 164 3/5/2024
4.0.147 980 3/4/2024
4.0.146 178 3/1/2024
4.0.145 178 2/29/2024
4.0.144 177 2/28/2024
4.0.143 181 2/27/2024
4.0.142 172 2/26/2024
4.0.141 189 2/23/2024
4.0.140 181 2/22/2024
4.0.139 167 2/21/2024
4.0.138 185 2/20/2024
4.0.137 420 2/19/2024
4.0.136 151 2/19/2024
4.0.135 149 2/16/2024
4.0.134 155 2/16/2024
4.0.133 154 2/15/2024
4.0.132 162 2/14/2024
4.0.131 150 2/13/2024
4.0.130 181 2/12/2024
4.0.129 154 2/9/2024
4.0.128 199 2/8/2024
4.0.127 159 2/7/2024
4.0.126 172 2/6/2024
4.0.125 134 2/6/2024
4.0.124 147 2/5/2024
4.0.123 517 2/2/2024
4.0.122 165 2/1/2024
4.0.121 147 2/1/2024
4.0.120 172 1/31/2024
4.0.119 236 1/30/2024
4.0.118 169 1/29/2024
4.0.117 183 1/26/2024
4.0.116 157 1/24/2024
4.0.115 145 1/23/2024
4.0.114 152 1/22/2024
4.0.113 352 1/16/2024
4.0.112 194 1/15/2024
4.0.111 171 1/15/2024
4.0.110 167 1/12/2024
4.0.109 153 1/11/2024
4.0.108 156 1/10/2024
4.0.107 340 1/8/2024
4.0.106 221 1/5/2024
4.0.105 342 12/26/2023
4.0.104 176 12/26/2023
4.0.103 199 12/25/2023
4.0.102 175 12/25/2023
4.0.101 259 12/22/2023
4.0.100 200 12/21/2023
4.0.99 215 12/15/2023
4.0.98 180 12/14/2023
4.0.97 163 12/13/2023
4.0.96 187 12/13/2023
4.0.95 341 12/12/2023
4.0.94 180 12/12/2023
4.0.93 179 12/11/2023
4.0.92 172 12/11/2023
4.0.91 230 12/6/2023
4.0.90 171 12/6/2023
4.0.89 168 12/5/2023
4.0.88 218 12/4/2023
4.0.87 226 11/24/2023
4.0.86 179 11/23/2023
4.0.85 173 11/21/2023
4.0.84 185 11/20/2023
4.0.83 173 11/20/2023
4.0.82 213 11/17/2023
4.0.81 666 11/16/2023
4.0.80 184 11/15/2023
4.0.79 184 11/13/2023
4.0.78 196 11/9/2023
4.0.77 203 11/8/2023
4.0.76 155 11/8/2023
4.0.75 175 11/7/2023
4.0.74 187 11/6/2023
4.0.73 182 11/3/2023
4.0.72 224 11/2/2023
4.0.71 170 11/1/2023
4.0.70 165 11/1/2023
4.0.69 209 10/31/2023
4.0.68 196 10/30/2023
4.0.67 194 10/27/2023
4.0.66 201 10/26/2023
4.0.65 209 10/25/2023
4.0.64 200 10/17/2023
4.0.63 161 10/17/2023
4.0.62 220 10/16/2023
4.0.61 226 10/13/2023
4.0.60 243 10/12/2023
4.0.59 186 10/11/2023
4.0.58 220 10/5/2023
4.0.57 197 10/4/2023
4.0.56 191 9/26/2023
4.0.55 191 9/25/2023
4.0.54 210 9/22/2023
4.0.53 216 9/20/2023
4.0.52 207 9/19/2023
4.0.51 199 9/18/2023
4.0.50 186 9/18/2023
4.0.49 243 9/14/2023
4.0.48 220 9/13/2023
4.0.47 185 9/12/2023
4.0.46 268 9/11/2023
4.0.45 185 9/11/2023
4.0.44 173 9/11/2023
4.0.43 301 9/7/2023
4.0.42 185 9/6/2023
4.0.41 249 9/5/2023
4.0.40 192 9/4/2023
4.0.39 202 9/4/2023
4.0.38 239 9/1/2023
4.0.37 243 8/31/2023
4.0.36 230 8/30/2023
4.0.35 252 8/29/2023
4.0.34 187 8/29/2023
4.0.33 273 8/28/2023
4.0.32 250 8/25/2023
4.0.31 237 8/24/2023
4.0.30 219 8/23/2023
4.0.29 229 8/22/2023
4.0.28 230 8/18/2023
4.0.27 243 8/17/2023
4.0.26 218 8/17/2023
4.0.25 205 8/16/2023
4.0.24 300 8/10/2023
4.0.23 252 8/9/2023
4.0.22 251 8/8/2023
4.0.21 225 8/8/2023
4.0.20 336 8/7/2023
4.0.19 231 8/4/2023
4.0.18 291 8/3/2023
4.0.17 260 8/2/2023
4.0.16 269 7/26/2023
4.0.15 246 7/25/2023
4.0.14 269 7/20/2023
4.0.13 260 7/19/2023
4.0.12 244 7/18/2023
4.0.11 195 7/18/2023
4.0.10 250 7/18/2023
4.0.9 205 7/18/2023
4.0.8 322 7/17/2023
4.0.7 219 7/17/2023
4.0.6 595 1/30/2023
4.0.5 454 1/30/2023
4.0.4 452 1/27/2023
4.0.3 562 12/13/2022
4.0.0 365 12/12/2022
3.0.47 1,581 6/10/2022
3.0.45 1,048 4/20/2022
3.0.44 1,072 1/11/2022
3.0.43 691 1/10/2022
3.0.42 1,164 6/17/2021
3.0.41 817 6/16/2021
3.0.40 783 6/16/2021
3.0.39 573 6/16/2021
3.0.38 1,088 1/7/2021
3.0.37 903 12/16/2020
3.0.36 832 12/14/2020
3.0.35 2,381 9/13/2020
3.0.34 959 6/19/2020
3.0.33 1,950 5/12/2020
3.0.32 1,470 5/12/2020
3.0.31 962 4/28/2020
3.0.30 915 4/24/2020
3.0.29 902 4/16/2020
3.0.28 971 4/16/2020
3.0.27 644 4/15/2020
3.0.26 935 4/15/2020
3.0.25 995 4/14/2020
3.0.24 688 4/14/2020
3.0.23 1,028 4/10/2020
3.0.22 974 4/10/2020
3.0.21 1,012 4/7/2020
3.0.20 2,829 3/26/2020
3.0.19 999 3/26/2020
3.0.18 671 3/25/2020
3.0.17 668 3/25/2020
3.0.16 679 3/25/2020
3.0.15 692 3/25/2020
3.0.13 687 3/25/2020
3.0.12 690 3/25/2020
3.0.11 658 3/25/2020
3.0.10 1,215 3/25/2020
3.0.9 1,036 3/22/2020
3.0.8 651 3/22/2020
3.0.7 1,036 3/21/2020
3.0.6 1,670 3/13/2020
3.0.5 707 3/13/2020
3.0.4 1,417 2/28/2020
3.0.3 1,265 2/21/2020
3.0.2 720 2/11/2020
3.0.1 695 2/11/2020
3.0.0 1,864 12/23/2019
2.0.13 720 11/4/2019
2.0.12 798 6/19/2019
2.0.11 770 6/19/2019
2.0.10 1,073 4/17/2019
2.0.9 1,630 2/21/2019
2.0.8 4,064 8/1/2018
2.0.7 1,406 8/1/2018
2.0.6 1,902 6/26/2018
2.0.5 1,267 6/14/2018
2.0.4 1,857 6/1/2018
2.0.3 1,819 5/22/2018
2.0.2 2,409 5/11/2018
2.0.1 2,487 2/13/2018
2.0.0 2,386 1/2/2018
1.0.29 4,015 11/16/2017
1.0.28 1,125 11/16/2017
1.0.27 6,529 10/18/2017
1.0.26 4,728 9/22/2017
1.0.24 1,194 9/22/2017
1.0.23 1,537 9/22/2017
1.0.22 1,201 9/22/2017
1.0.21 1,215 9/22/2017
1.0.19 1,219 9/22/2017
1.0.18 1,212 9/21/2017
1.0.17 2,253 8/4/2017
1.0.16 1,224 7/3/2017
1.0.15 1,238 6/16/2017
1.0.13 1,232 6/16/2017
1.0.12 1,217 6/16/2017
1.0.11 1,236 5/30/2017
1.0.9 1,227 5/25/2017
1.0.8 1,211 5/24/2017
1.0.7 1,237 5/19/2017
1.0.6 1,274 5/17/2017
1.0.4 1,336 4/3/2017
1.0.3 1,348 3/22/2017
1.0.2 1,339 2/2/2017