Data.Modeler 5.0.94

There is a newer version of this package available.
See the version list below for details.
dotnet add package Data.Modeler --version 5.0.94
                    
NuGet\Install-Package Data.Modeler -Version 5.0.94
                    
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.94" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Data.Modeler" Version="5.0.94" />
                    
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.94
                    
#r "nuget: Data.Modeler, 5.0.94"
                    
#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.94
                    
#: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.94
                    
Install as a Cake Addin
#tool nuget:?package=Data.Modeler&version=5.0.94
                    
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.95 360 12/11/2025
5.0.94 378 12/10/2025
5.0.92 772 12/1/2025
5.0.91 530 11/18/2025
5.0.90 229 11/14/2025
5.0.89 216 11/14/2025
5.0.88 329 11/13/2025
5.0.87 307 11/13/2025
5.0.86 307 11/13/2025
5.0.85 242 11/6/2025
5.0.84 204 10/31/2025
5.0.83 306 10/17/2025
5.0.82 212 10/16/2025
5.0.81 219 10/15/2025
5.0.80 251 10/14/2025
5.0.79 227 10/13/2025
5.0.78 265 10/12/2025
5.0.77 290 9/30/2025
5.0.76 216 9/29/2025
5.0.75 189 9/29/2025
5.0.72 451 9/18/2025
5.0.71 317 9/18/2025
5.0.70 362 9/17/2025
5.0.69 349 9/16/2025
5.0.68 221 9/11/2025
5.0.67 212 9/10/2025
5.0.66 227 9/9/2025
5.0.65 381 8/20/2025
5.0.64 192 8/20/2025
5.0.63 200 8/20/2025
5.0.62 177 8/19/2025
5.0.61 192 8/19/2025
5.0.60 225 8/19/2025
5.0.59 209 8/15/2025
5.0.58 360 8/6/2025
5.0.57 304 8/5/2025
5.0.56 276 8/5/2025
5.0.55 267 8/5/2025
5.0.54 314 8/5/2025
5.0.53 241 8/5/2025
5.0.52 146 8/1/2025
5.0.51 264 7/28/2025
5.0.50 246 7/17/2025
5.0.49 199 7/17/2025
5.0.48 295 7/15/2025
5.0.47 192 7/14/2025
5.0.46 203 7/14/2025
5.0.45 244 7/8/2025
5.0.44 589 6/30/2025
5.0.43 196 6/30/2025
5.0.42 200 6/30/2025
5.0.41 228 6/27/2025
5.0.40 255 6/27/2025
5.0.39 194 6/27/2025
5.0.38 194 6/27/2025
5.0.37 186 6/27/2025
5.0.36 235 6/26/2025
5.0.35 217 6/18/2025
5.0.34 384 6/10/2025
5.0.33 169 5/30/2025
5.0.32 187 5/23/2025
5.0.31 320 5/14/2025
5.0.30 172 5/2/2025
5.0.29 236 4/28/2025
5.0.28 215 4/11/2025
5.0.27 238 3/17/2025
5.0.26 195 2/24/2025
5.0.25 219 2/12/2025
5.0.24 338 2/3/2025
5.0.23 238 1/30/2025
5.0.22 214 1/29/2025
5.0.21 184 1/29/2025
5.0.20 193 1/28/2025
5.0.19 220 1/24/2025
5.0.18 203 1/23/2025
5.0.17 175 1/23/2025
5.0.16 248 1/16/2025
5.0.15 191 1/15/2025
5.0.14 209 1/14/2025
5.0.13 187 1/13/2025
5.0.12 204 1/10/2025
5.0.11 202 1/9/2025
5.0.10 162 1/8/2025
5.0.9 256 12/17/2024
5.0.8 211 12/17/2024
5.0.7 249 12/10/2024
5.0.6 206 12/9/2024
5.0.5 291 11/26/2024
5.0.4 257 11/26/2024
5.0.3 194 11/25/2024
5.0.2 251 11/24/2024
5.0.1 198 11/23/2024
5.0.0 186 11/23/2024
4.0.268 222 11/19/2024
4.0.267 190 11/11/2024
4.0.266 187 11/6/2024
4.0.265 190 11/5/2024
4.0.264 183 11/4/2024
4.0.263 223 11/1/2024
4.0.262 189 10/31/2024
4.0.261 201 10/30/2024
4.0.260 192 10/29/2024
4.0.259 196 10/29/2024
4.0.258 211 10/25/2024
4.0.257 187 10/24/2024
4.0.256 214 10/21/2024
4.0.255 201 10/16/2024
4.0.254 195 10/15/2024
4.0.253 208 10/11/2024
4.0.252 190 10/10/2024
4.0.251 184 10/9/2024
4.0.250 177 10/8/2024
4.0.249 212 10/2/2024
4.0.248 217 10/1/2024
4.0.247 191 9/30/2024
4.0.246 217 9/27/2024
4.0.245 189 9/24/2024
4.0.244 192 9/23/2024
4.0.243 186 9/23/2024
4.0.242 250 9/17/2024
4.0.241 242 9/10/2024
4.0.240 199 9/9/2024
4.0.239 218 9/6/2024
4.0.238 225 9/5/2024
4.0.237 196 9/3/2024
4.0.236 201 9/2/2024
4.0.235 205 8/30/2024
4.0.234 208 8/29/2024
4.0.233 227 8/28/2024
4.0.232 214 8/27/2024
4.0.231 204 8/26/2024
4.0.230 218 8/23/2024
4.0.229 219 8/22/2024
4.0.228 207 8/21/2024
4.0.227 219 8/20/2024
4.0.226 204 8/20/2024
4.0.225 240 8/19/2024
4.0.224 251 8/16/2024
4.0.223 229 8/15/2024
4.0.222 249 8/14/2024
4.0.221 192 8/5/2024
4.0.220 187 8/2/2024
4.0.219 232 8/1/2024
4.0.218 177 7/31/2024
4.0.217 221 7/26/2024
4.0.216 192 7/25/2024
4.0.215 155 7/24/2024
4.0.214 202 7/11/2024
4.0.213 179 7/10/2024
4.0.212 186 7/9/2024
4.0.211 207 7/9/2024
4.0.210 192 7/8/2024
4.0.209 198 7/5/2024
4.0.208 221 7/5/2024
4.0.207 193 7/2/2024
4.0.206 193 7/1/2024
4.0.205 234 6/27/2024
4.0.204 236 6/26/2024
4.0.203 208 6/25/2024
4.0.202 228 6/24/2024
4.0.201 1,321 6/19/2024
4.0.200 241 6/18/2024
4.0.199 192 6/17/2024
4.0.198 199 6/14/2024
4.0.197 192 6/13/2024
4.0.196 218 6/12/2024
4.0.195 210 6/3/2024
4.0.194 200 5/31/2024
4.0.193 242 5/30/2024
4.0.192 209 5/29/2024
4.0.191 226 5/27/2024
4.0.190 213 5/27/2024
4.0.189 193 5/23/2024
4.0.188 201 5/22/2024
4.0.187 235 5/21/2024
4.0.186 230 5/20/2024
4.0.185 204 5/17/2024
4.0.184 199 5/16/2024
4.0.183 217 5/15/2024
4.0.182 213 5/8/2024
4.0.181 196 5/7/2024
4.0.180 220 5/6/2024
4.0.179 230 5/3/2024
4.0.178 948 5/2/2024
4.0.177 169 5/1/2024
4.0.176 222 4/30/2024
4.0.175 204 4/29/2024
4.0.174 203 4/29/2024
4.0.173 240 4/25/2024
4.0.172 228 4/24/2024
4.0.171 237 4/16/2024
4.0.170 210 4/15/2024
4.0.169 225 4/12/2024
4.0.168 224 4/12/2024
4.0.167 235 4/11/2024
4.0.166 252 4/10/2024
4.0.165 212 4/9/2024
4.0.164 215 4/8/2024
4.0.163 216 4/1/2024
4.0.162 196 3/29/2024
4.0.161 233 3/28/2024
4.0.160 211 3/26/2024
4.0.159 227 3/23/2024
4.0.158 233 3/22/2024
4.0.157 232 3/21/2024
4.0.156 213 3/18/2024
4.0.155 232 3/15/2024
4.0.154 216 3/14/2024
4.0.153 226 3/13/2024
4.0.152 264 3/11/2024
4.0.151 235 3/8/2024
4.0.150 222 3/7/2024
4.0.149 211 3/6/2024
4.0.148 216 3/5/2024
4.0.147 1,323 3/4/2024
4.0.146 234 3/1/2024
4.0.145 245 2/29/2024
4.0.144 243 2/28/2024
4.0.143 248 2/27/2024
4.0.142 245 2/26/2024
4.0.141 243 2/23/2024
4.0.140 259 2/22/2024
4.0.139 238 2/21/2024
4.0.138 251 2/20/2024
4.0.137 586 2/19/2024
4.0.136 209 2/19/2024
4.0.135 217 2/16/2024
4.0.134 228 2/16/2024
4.0.133 201 2/15/2024
4.0.132 226 2/14/2024
4.0.131 191 2/13/2024
4.0.130 231 2/12/2024
4.0.129 208 2/9/2024
4.0.128 266 2/8/2024
4.0.127 225 2/7/2024
4.0.126 243 2/6/2024
4.0.125 181 2/6/2024
4.0.124 201 2/5/2024
4.0.123 734 2/2/2024
4.0.122 248 2/1/2024
4.0.121 204 2/1/2024
4.0.120 251 1/31/2024
4.0.119 329 1/30/2024
4.0.118 256 1/29/2024
4.0.117 264 1/26/2024
4.0.116 223 1/24/2024
4.0.115 197 1/23/2024
4.0.114 208 1/22/2024
4.0.113 498 1/16/2024
4.0.112 275 1/15/2024
4.0.111 228 1/15/2024
4.0.110 232 1/12/2024
4.0.109 231 1/11/2024
4.0.108 205 1/10/2024
4.0.107 464 1/8/2024
4.0.106 298 1/5/2024
4.0.105 432 12/26/2023
4.0.104 255 12/26/2023
4.0.103 257 12/25/2023
4.0.102 244 12/25/2023
4.0.101 357 12/22/2023
4.0.100 289 12/21/2023
4.0.99 272 12/15/2023
4.0.98 250 12/14/2023
4.0.97 230 12/13/2023
4.0.96 252 12/13/2023
4.0.95 437 12/12/2023
4.0.94 258 12/12/2023
4.0.93 236 12/11/2023
4.0.92 229 12/11/2023
4.0.91 283 12/6/2023
4.0.90 215 12/6/2023
4.0.89 217 12/5/2023
4.0.88 279 12/4/2023
4.0.87 295 11/24/2023
4.0.86 218 11/23/2023
4.0.85 240 11/21/2023
4.0.84 255 11/20/2023
4.0.83 229 11/20/2023
4.0.82 296 11/17/2023
4.0.81 717 11/16/2023
4.0.80 243 11/15/2023
4.0.79 238 11/13/2023
4.0.78 279 11/9/2023
4.0.77 266 11/8/2023
4.0.76 194 11/8/2023
4.0.75 240 11/7/2023
4.0.74 238 11/6/2023
4.0.73 223 11/3/2023
4.0.72 300 11/2/2023
4.0.71 226 11/1/2023
4.0.70 222 11/1/2023
4.0.69 288 10/31/2023
4.0.68 264 10/30/2023
4.0.67 238 10/27/2023
4.0.66 278 10/26/2023
4.0.65 258 10/25/2023
4.0.64 224 10/17/2023
4.0.63 195 10/17/2023
4.0.62 273 10/16/2023
4.0.61 258 10/13/2023
4.0.60 312 10/12/2023
4.0.59 230 10/11/2023
4.0.58 271 10/5/2023
4.0.57 249 10/4/2023
4.0.56 231 9/26/2023
4.0.55 260 9/25/2023
4.0.54 276 9/22/2023
4.0.53 272 9/20/2023
4.0.52 267 9/19/2023
4.0.51 245 9/18/2023
4.0.50 241 9/18/2023
4.0.49 305 9/14/2023
4.0.48 283 9/13/2023
4.0.47 232 9/12/2023
4.0.46 315 9/11/2023
4.0.45 225 9/11/2023
4.0.44 215 9/11/2023
4.0.43 399 9/7/2023
4.0.42 238 9/6/2023
4.0.41 312 9/5/2023
4.0.40 241 9/4/2023
4.0.39 258 9/4/2023
4.0.38 309 9/1/2023
4.0.37 307 8/31/2023
4.0.36 309 8/30/2023
4.0.35 320 8/29/2023
4.0.34 240 8/29/2023
4.0.33 350 8/28/2023
4.0.32 332 8/25/2023
4.0.31 292 8/24/2023
4.0.30 276 8/23/2023
4.0.29 291 8/22/2023
4.0.28 289 8/18/2023
4.0.27 305 8/17/2023
4.0.26 276 8/17/2023
4.0.25 259 8/16/2023
4.0.24 371 8/10/2023
4.0.23 302 8/9/2023
4.0.22 333 8/8/2023
4.0.21 281 8/8/2023
4.0.20 402 8/7/2023
4.0.19 294 8/4/2023
4.0.18 356 8/3/2023
4.0.17 341 8/2/2023
4.0.16 339 7/26/2023
4.0.15 294 7/25/2023
4.0.14 320 7/20/2023
4.0.13 341 7/19/2023
4.0.12 315 7/18/2023
4.0.11 232 7/18/2023
4.0.10 306 7/18/2023
4.0.9 257 7/18/2023
4.0.8 414 7/17/2023
4.0.7 290 7/17/2023
4.0.6 684 1/30/2023
4.0.5 542 1/30/2023
4.0.4 532 1/27/2023
4.0.3 661 12/13/2022
4.0.0 431 12/12/2022
3.0.47 1,691 6/10/2022
3.0.45 1,150 4/20/2022
3.0.44 1,186 1/11/2022
3.0.43 809 1/10/2022
3.0.42 1,279 6/17/2021
3.0.41 933 6/16/2021
3.0.40 883 6/16/2021
3.0.39 675 6/16/2021
3.0.38 1,210 1/7/2021
3.0.37 1,021 12/16/2020
3.0.36 932 12/14/2020
3.0.35 2,602 9/13/2020
3.0.34 1,080 6/19/2020
3.0.33 2,091 5/12/2020
3.0.32 1,626 5/12/2020
3.0.31 1,066 4/28/2020
3.0.30 1,020 4/24/2020
3.0.29 1,002 4/16/2020
3.0.28 1,081 4/16/2020
3.0.27 720 4/15/2020
3.0.26 1,033 4/15/2020
3.0.25 1,082 4/14/2020
3.0.24 781 4/14/2020
3.0.23 1,137 4/10/2020
3.0.22 1,072 4/10/2020
3.0.21 1,116 4/7/2020
3.0.20 2,967 3/26/2020
3.0.19 1,102 3/26/2020
3.0.18 771 3/25/2020
3.0.17 766 3/25/2020
3.0.16 786 3/25/2020
3.0.15 763 3/25/2020
3.0.13 776 3/25/2020
3.0.12 782 3/25/2020
3.0.11 750 3/25/2020
3.0.10 1,324 3/25/2020
3.0.9 1,148 3/22/2020
3.0.8 741 3/22/2020
3.0.7 1,142 3/21/2020
3.0.6 1,771 3/13/2020
3.0.5 804 3/13/2020
3.0.4 1,545 2/28/2020
3.0.3 1,350 2/21/2020
3.0.2 800 2/11/2020
3.0.1 781 2/11/2020
3.0.0 1,989 12/23/2019
2.0.13 827 11/4/2019
2.0.12 883 6/19/2019
2.0.11 852 6/19/2019
2.0.10 1,167 4/17/2019
2.0.9 1,731 2/21/2019
2.0.8 4,314 8/1/2018
2.0.7 1,545 8/1/2018
2.0.6 2,105 6/26/2018
2.0.5 1,457 6/14/2018
2.0.4 2,088 6/1/2018
2.0.3 2,038 5/22/2018
2.0.2 2,613 5/11/2018
2.0.1 2,675 2/13/2018
2.0.0 2,628 1/2/2018
1.0.29 4,267 11/16/2017
1.0.28 1,272 11/16/2017
1.0.27 6,820 10/18/2017
1.0.26 5,022 9/22/2017
1.0.24 1,351 9/22/2017
1.0.23 1,690 9/22/2017
1.0.22 1,347 9/22/2017
1.0.21 1,382 9/22/2017
1.0.19 1,355 9/22/2017
1.0.18 1,349 9/21/2017
1.0.17 2,413 8/4/2017
1.0.16 1,368 7/3/2017
1.0.15 1,387 6/16/2017
1.0.13 1,389 6/16/2017
1.0.12 1,365 6/16/2017
1.0.11 1,376 5/30/2017
1.0.9 1,366 5/25/2017
1.0.8 1,338 5/24/2017
1.0.7 1,368 5/19/2017
1.0.6 1,409 5/17/2017
1.0.4 1,488 4/3/2017
1.0.3 1,502 3/22/2017
1.0.2 1,491 2/2/2017