Data.Modeler 5.0.100

dotnet add package Data.Modeler --version 5.0.100
                    
NuGet\Install-Package Data.Modeler -Version 5.0.100
                    
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.100" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Data.Modeler" Version="5.0.100" />
                    
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.100
                    
#r "nuget: Data.Modeler, 5.0.100"
                    
#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.100
                    
#: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.100
                    
Install as a Cake Addin
#tool nuget:?package=Data.Modeler&version=5.0.100
                    
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.100 37 1/7/2026
5.0.99 32 1/7/2026
5.0.98 269 12/24/2025
5.0.97 208 12/23/2025
5.0.96 197 12/22/2025
5.0.95 495 12/11/2025
5.0.94 457 12/10/2025
5.0.92 792 12/1/2025
5.0.91 548 11/18/2025
5.0.90 243 11/14/2025
5.0.89 232 11/14/2025
5.0.88 344 11/13/2025
5.0.87 317 11/13/2025
5.0.86 318 11/13/2025
5.0.85 252 11/6/2025
5.0.84 216 10/31/2025
5.0.83 318 10/17/2025
5.0.82 223 10/16/2025
5.0.81 231 10/15/2025
5.0.80 257 10/14/2025
5.0.79 240 10/13/2025
5.0.78 281 10/12/2025
5.0.77 300 9/30/2025
5.0.76 220 9/29/2025
5.0.75 201 9/29/2025
5.0.72 464 9/18/2025
5.0.71 326 9/18/2025
5.0.70 375 9/17/2025
5.0.69 361 9/16/2025
5.0.68 229 9/11/2025
5.0.67 229 9/10/2025
5.0.66 237 9/9/2025
5.0.65 394 8/20/2025
5.0.64 205 8/20/2025
5.0.63 216 8/20/2025
5.0.62 191 8/19/2025
5.0.61 203 8/19/2025
5.0.60 236 8/19/2025
5.0.59 223 8/15/2025
5.0.58 367 8/6/2025
5.0.57 317 8/5/2025
5.0.56 287 8/5/2025
5.0.55 276 8/5/2025
5.0.54 327 8/5/2025
5.0.53 254 8/5/2025
5.0.52 156 8/1/2025
5.0.51 291 7/28/2025
5.0.50 257 7/17/2025
5.0.49 209 7/17/2025
5.0.48 310 7/15/2025
5.0.47 203 7/14/2025
5.0.46 217 7/14/2025
5.0.45 254 7/8/2025
5.0.44 599 6/30/2025
5.0.43 215 6/30/2025
5.0.42 210 6/30/2025
5.0.41 238 6/27/2025
5.0.40 264 6/27/2025
5.0.39 207 6/27/2025
5.0.38 206 6/27/2025
5.0.37 194 6/27/2025
5.0.36 240 6/26/2025
5.0.35 231 6/18/2025
5.0.34 398 6/10/2025
5.0.33 182 5/30/2025
5.0.32 201 5/23/2025
5.0.31 334 5/14/2025
5.0.30 187 5/2/2025
5.0.29 249 4/28/2025
5.0.28 228 4/11/2025
5.0.27 248 3/17/2025
5.0.26 206 2/24/2025
5.0.25 236 2/12/2025
5.0.24 348 2/3/2025
5.0.23 254 1/30/2025
5.0.22 231 1/29/2025
5.0.21 194 1/29/2025
5.0.20 202 1/28/2025
5.0.19 235 1/24/2025
5.0.18 212 1/23/2025
5.0.17 187 1/23/2025
5.0.16 259 1/16/2025
5.0.15 203 1/15/2025
5.0.14 221 1/14/2025
5.0.13 203 1/13/2025
5.0.12 211 1/10/2025
5.0.11 209 1/9/2025
5.0.10 175 1/8/2025
5.0.9 266 12/17/2024
5.0.8 226 12/17/2024
5.0.7 261 12/10/2024
5.0.6 218 12/9/2024
5.0.5 303 11/26/2024
5.0.4 265 11/26/2024
5.0.3 204 11/25/2024
5.0.2 259 11/24/2024
5.0.1 209 11/23/2024
5.0.0 203 11/23/2024
4.0.268 229 11/19/2024
4.0.267 196 11/11/2024
4.0.266 194 11/6/2024
4.0.265 202 11/5/2024
4.0.264 196 11/4/2024
4.0.263 235 11/1/2024
4.0.262 196 10/31/2024
4.0.261 211 10/30/2024
4.0.260 200 10/29/2024
4.0.259 210 10/29/2024
4.0.258 216 10/25/2024
4.0.257 195 10/24/2024
4.0.256 221 10/21/2024
4.0.255 210 10/16/2024
4.0.254 204 10/15/2024
4.0.253 214 10/11/2024
4.0.252 199 10/10/2024
4.0.251 189 10/9/2024
4.0.250 184 10/8/2024
4.0.249 222 10/2/2024
4.0.248 228 10/1/2024
4.0.247 200 9/30/2024
4.0.246 227 9/27/2024
4.0.245 198 9/24/2024
4.0.244 199 9/23/2024
4.0.243 196 9/23/2024
4.0.242 256 9/17/2024
4.0.241 258 9/10/2024
4.0.240 212 9/9/2024
4.0.239 230 9/6/2024
4.0.238 234 9/5/2024
4.0.237 208 9/3/2024
4.0.236 213 9/2/2024
4.0.235 210 8/30/2024
4.0.234 221 8/29/2024
4.0.233 240 8/28/2024
4.0.232 228 8/27/2024
4.0.231 214 8/26/2024
4.0.230 232 8/23/2024
4.0.229 233 8/22/2024
4.0.228 218 8/21/2024
4.0.227 225 8/20/2024
4.0.226 210 8/20/2024
4.0.225 250 8/19/2024
4.0.224 263 8/16/2024
4.0.223 237 8/15/2024
4.0.222 257 8/14/2024
4.0.221 195 8/5/2024
4.0.220 197 8/2/2024
4.0.219 240 8/1/2024
4.0.218 184 7/31/2024
4.0.217 230 7/26/2024
4.0.216 200 7/25/2024
4.0.215 168 7/24/2024
4.0.214 214 7/11/2024
4.0.213 186 7/10/2024
4.0.212 198 7/9/2024
4.0.211 217 7/9/2024
4.0.210 198 7/8/2024
4.0.209 210 7/5/2024
4.0.208 235 7/5/2024
4.0.207 202 7/2/2024
4.0.206 204 7/1/2024
4.0.205 240 6/27/2024
4.0.204 246 6/26/2024
4.0.203 219 6/25/2024
4.0.202 241 6/24/2024
4.0.201 1,328 6/19/2024
4.0.200 252 6/18/2024
4.0.199 204 6/17/2024
4.0.198 211 6/14/2024
4.0.197 201 6/13/2024
4.0.196 224 6/12/2024
4.0.195 220 6/3/2024
4.0.194 215 5/31/2024
4.0.193 251 5/30/2024
4.0.192 216 5/29/2024
4.0.191 235 5/27/2024
4.0.190 222 5/27/2024
4.0.189 201 5/23/2024
4.0.188 213 5/22/2024
4.0.187 245 5/21/2024
4.0.186 238 5/20/2024
4.0.185 211 5/17/2024
4.0.184 204 5/16/2024
4.0.183 228 5/15/2024
4.0.182 220 5/8/2024
4.0.181 211 5/7/2024
4.0.180 229 5/6/2024
4.0.179 240 5/3/2024
4.0.178 956 5/2/2024
4.0.177 176 5/1/2024
4.0.176 229 4/30/2024
4.0.175 214 4/29/2024
4.0.174 209 4/29/2024
4.0.173 255 4/25/2024
4.0.172 238 4/24/2024
4.0.171 249 4/16/2024
4.0.170 216 4/15/2024
4.0.169 231 4/12/2024
4.0.168 230 4/12/2024
4.0.167 247 4/11/2024
4.0.166 264 4/10/2024
4.0.165 221 4/9/2024
4.0.164 224 4/8/2024
4.0.163 227 4/1/2024
4.0.162 207 3/29/2024
4.0.161 242 3/28/2024
4.0.160 222 3/26/2024
4.0.159 235 3/23/2024
4.0.158 247 3/22/2024
4.0.157 241 3/21/2024
4.0.156 218 3/18/2024
4.0.155 244 3/15/2024
4.0.154 228 3/14/2024
4.0.153 232 3/13/2024
4.0.152 275 3/11/2024
4.0.151 242 3/8/2024
4.0.150 230 3/7/2024
4.0.149 219 3/6/2024
4.0.148 228 3/5/2024
4.0.147 1,334 3/4/2024
4.0.146 244 3/1/2024
4.0.145 254 2/29/2024
4.0.144 253 2/28/2024
4.0.143 257 2/27/2024
4.0.142 252 2/26/2024
4.0.141 254 2/23/2024
4.0.140 267 2/22/2024
4.0.139 247 2/21/2024
4.0.138 260 2/20/2024
4.0.137 597 2/19/2024
4.0.136 225 2/19/2024
4.0.135 226 2/16/2024
4.0.134 237 2/16/2024
4.0.133 211 2/15/2024
4.0.132 237 2/14/2024
4.0.131 200 2/13/2024
4.0.130 240 2/12/2024
4.0.129 222 2/9/2024
4.0.128 275 2/8/2024
4.0.127 235 2/7/2024
4.0.126 253 2/6/2024
4.0.125 189 2/6/2024
4.0.124 208 2/5/2024
4.0.123 743 2/2/2024
4.0.122 262 2/1/2024
4.0.121 211 2/1/2024
4.0.120 261 1/31/2024
4.0.119 337 1/30/2024
4.0.118 262 1/29/2024
4.0.117 277 1/26/2024
4.0.116 231 1/24/2024
4.0.115 207 1/23/2024
4.0.114 216 1/22/2024
4.0.113 509 1/16/2024
4.0.112 284 1/15/2024
4.0.111 235 1/15/2024
4.0.110 236 1/12/2024
4.0.109 241 1/11/2024
4.0.108 215 1/10/2024
4.0.107 473 1/8/2024
4.0.106 309 1/5/2024
4.0.105 442 12/26/2023
4.0.104 267 12/26/2023
4.0.103 271 12/25/2023
4.0.102 254 12/25/2023
4.0.101 365 12/22/2023
4.0.100 299 12/21/2023
4.0.99 281 12/15/2023
4.0.98 262 12/14/2023
4.0.97 239 12/13/2023
4.0.96 263 12/13/2023
4.0.95 446 12/12/2023
4.0.94 267 12/12/2023
4.0.93 244 12/11/2023
4.0.92 241 12/11/2023
4.0.91 290 12/6/2023
4.0.90 221 12/6/2023
4.0.89 227 12/5/2023
4.0.88 288 12/4/2023
4.0.87 303 11/24/2023
4.0.86 224 11/23/2023
4.0.85 245 11/21/2023
4.0.84 263 11/20/2023
4.0.83 234 11/20/2023
4.0.82 305 11/17/2023
4.0.81 728 11/16/2023
4.0.80 251 11/15/2023
4.0.79 246 11/13/2023
4.0.78 289 11/9/2023
4.0.77 279 11/8/2023
4.0.76 204 11/8/2023
4.0.75 244 11/7/2023
4.0.74 248 11/6/2023
4.0.73 232 11/3/2023
4.0.72 304 11/2/2023
4.0.71 238 11/1/2023
4.0.70 233 11/1/2023
4.0.69 297 10/31/2023
4.0.68 271 10/30/2023
4.0.67 244 10/27/2023
4.0.66 287 10/26/2023
4.0.65 266 10/25/2023
4.0.64 234 10/17/2023
4.0.63 208 10/17/2023
4.0.62 278 10/16/2023
4.0.61 271 10/13/2023
4.0.60 318 10/12/2023
4.0.59 241 10/11/2023
4.0.58 277 10/5/2023
4.0.57 260 10/4/2023
4.0.56 241 9/26/2023
4.0.55 269 9/25/2023
4.0.54 284 9/22/2023
4.0.53 282 9/20/2023
4.0.52 274 9/19/2023
4.0.51 257 9/18/2023
4.0.50 250 9/18/2023
4.0.49 310 9/14/2023
4.0.48 288 9/13/2023
4.0.47 239 9/12/2023
4.0.46 321 9/11/2023
4.0.45 234 9/11/2023
4.0.44 225 9/11/2023
4.0.43 406 9/7/2023
4.0.42 248 9/6/2023
4.0.41 319 9/5/2023
4.0.40 252 9/4/2023
4.0.39 264 9/4/2023
4.0.38 318 9/1/2023
4.0.37 316 8/31/2023
4.0.36 319 8/30/2023
4.0.35 327 8/29/2023
4.0.34 251 8/29/2023
4.0.33 357 8/28/2023
4.0.32 341 8/25/2023
4.0.31 303 8/24/2023
4.0.30 285 8/23/2023
4.0.29 301 8/22/2023
4.0.28 300 8/18/2023
4.0.27 313 8/17/2023
4.0.26 288 8/17/2023
4.0.25 272 8/16/2023
4.0.24 379 8/10/2023
4.0.23 313 8/9/2023
4.0.22 340 8/8/2023
4.0.21 287 8/8/2023
4.0.20 417 8/7/2023
4.0.19 300 8/4/2023
4.0.18 368 8/3/2023
4.0.17 349 8/2/2023
4.0.16 347 7/26/2023
4.0.15 302 7/25/2023
4.0.14 324 7/20/2023
4.0.13 350 7/19/2023
4.0.12 327 7/18/2023
4.0.11 240 7/18/2023
4.0.10 314 7/18/2023
4.0.9 267 7/18/2023
4.0.8 420 7/17/2023
4.0.7 301 7/17/2023
4.0.6 696 1/30/2023
4.0.5 552 1/30/2023
4.0.4 537 1/27/2023
4.0.3 669 12/13/2022
4.0.0 439 12/12/2022
3.0.47 1,703 6/10/2022
3.0.45 1,161 4/20/2022
3.0.44 1,195 1/11/2022
3.0.43 817 1/10/2022
3.0.42 1,291 6/17/2021
3.0.41 943 6/16/2021
3.0.40 888 6/16/2021
3.0.39 684 6/16/2021
3.0.38 1,221 1/7/2021
3.0.37 1,036 12/16/2020
3.0.36 949 12/14/2020
3.0.35 2,614 9/13/2020
3.0.34 1,098 6/19/2020
3.0.33 2,107 5/12/2020
3.0.32 1,635 5/12/2020
3.0.31 1,083 4/28/2020
3.0.30 1,034 4/24/2020
3.0.29 1,014 4/16/2020
3.0.28 1,095 4/16/2020
3.0.27 732 4/15/2020
3.0.26 1,046 4/15/2020
3.0.25 1,095 4/14/2020
3.0.24 795 4/14/2020
3.0.23 1,146 4/10/2020
3.0.22 1,082 4/10/2020
3.0.21 1,130 4/7/2020
3.0.20 2,978 3/26/2020
3.0.19 1,113 3/26/2020
3.0.18 786 3/25/2020
3.0.17 778 3/25/2020
3.0.16 798 3/25/2020
3.0.15 781 3/25/2020
3.0.13 792 3/25/2020
3.0.12 790 3/25/2020
3.0.11 763 3/25/2020
3.0.10 1,340 3/25/2020
3.0.9 1,166 3/22/2020
3.0.8 755 3/22/2020
3.0.7 1,155 3/21/2020
3.0.6 1,787 3/13/2020
3.0.5 817 3/13/2020
3.0.4 1,561 2/28/2020
3.0.3 1,366 2/21/2020
3.0.2 819 2/11/2020
3.0.1 794 2/11/2020
3.0.0 2,003 12/23/2019
2.0.13 838 11/4/2019
2.0.12 893 6/19/2019
2.0.11 869 6/19/2019
2.0.10 1,177 4/17/2019
2.0.9 1,744 2/21/2019
2.0.8 4,329 8/1/2018
2.0.7 1,568 8/1/2018
2.0.6 2,126 6/26/2018
2.0.5 1,482 6/14/2018
2.0.4 2,114 6/1/2018
2.0.3 2,061 5/22/2018
2.0.2 2,634 5/11/2018
2.0.1 2,703 2/13/2018
2.0.0 2,649 1/2/2018
1.0.29 4,292 11/16/2017
1.0.28 1,290 11/16/2017
1.0.27 6,835 10/18/2017
1.0.26 5,041 9/22/2017
1.0.24 1,370 9/22/2017
1.0.23 1,708 9/22/2017
1.0.22 1,369 9/22/2017
1.0.21 1,402 9/22/2017
1.0.19 1,376 9/22/2017
1.0.18 1,370 9/21/2017
1.0.17 2,434 8/4/2017
1.0.16 1,387 7/3/2017
1.0.15 1,405 6/16/2017
1.0.13 1,406 6/16/2017
1.0.12 1,386 6/16/2017
1.0.11 1,397 5/30/2017
1.0.9 1,381 5/25/2017
1.0.8 1,356 5/24/2017
1.0.7 1,392 5/19/2017
1.0.6 1,429 5/17/2017
1.0.4 1,510 4/3/2017
1.0.3 1,522 3/22/2017
1.0.2 1,512 2/2/2017