Data.Modeler 5.0.1

There is a newer version of this package available.
See the version list below for details.
dotnet add package Data.Modeler --version 5.0.1
                    
NuGet\Install-Package Data.Modeler -Version 5.0.1
                    
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.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Data.Modeler" Version="5.0.1" />
                    
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.1
                    
#r "nuget: Data.Modeler, 5.0.1"
                    
#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.1
                    
#: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.1
                    
Install as a Cake Addin
#tool nuget:?package=Data.Modeler&version=5.0.1
                    
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.72 275 9/18/2025
5.0.71 252 9/18/2025
5.0.70 276 9/17/2025
5.0.69 282 9/16/2025
5.0.68 168 9/11/2025
5.0.67 148 9/10/2025
5.0.66 160 9/9/2025
5.0.65 299 8/20/2025
5.0.64 138 8/20/2025
5.0.63 145 8/20/2025
5.0.62 135 8/19/2025
5.0.61 139 8/19/2025
5.0.60 166 8/19/2025
5.0.59 132 8/15/2025
5.0.58 294 8/6/2025
5.0.57 244 8/5/2025
5.0.56 222 8/5/2025
5.0.55 225 8/5/2025
5.0.54 254 8/5/2025
5.0.53 197 8/5/2025
5.0.52 72 8/1/2025
5.0.51 135 7/28/2025
5.0.50 193 7/17/2025
5.0.49 152 7/17/2025
5.0.48 221 7/15/2025
5.0.47 158 7/14/2025
5.0.46 159 7/14/2025
5.0.45 200 7/8/2025
5.0.44 514 6/30/2025
5.0.43 155 6/30/2025
5.0.42 154 6/30/2025
5.0.41 161 6/27/2025
5.0.40 199 6/27/2025
5.0.39 148 6/27/2025
5.0.38 155 6/27/2025
5.0.37 151 6/27/2025
5.0.36 199 6/26/2025
5.0.35 175 6/18/2025
5.0.34 326 6/10/2025
5.0.33 123 5/30/2025
5.0.32 130 5/23/2025
5.0.31 264 5/14/2025
5.0.30 139 5/2/2025
5.0.29 194 4/28/2025
5.0.28 157 4/11/2025
5.0.27 190 3/17/2025
5.0.26 163 2/24/2025
5.0.25 180 2/12/2025
5.0.24 290 2/3/2025
5.0.23 201 1/30/2025
5.0.22 170 1/29/2025
5.0.21 139 1/29/2025
5.0.20 156 1/28/2025
5.0.19 159 1/24/2025
5.0.18 158 1/23/2025
5.0.17 137 1/23/2025
5.0.16 183 1/16/2025
5.0.15 154 1/15/2025
5.0.14 147 1/14/2025
5.0.13 141 1/13/2025
5.0.12 157 1/10/2025
5.0.11 152 1/9/2025
5.0.10 131 1/8/2025
5.0.9 208 12/17/2024
5.0.8 158 12/17/2024
5.0.7 196 12/10/2024
5.0.6 154 12/9/2024
5.0.5 229 11/26/2024
5.0.4 187 11/26/2024
5.0.3 144 11/25/2024
5.0.2 182 11/24/2024
5.0.1 159 11/23/2024
5.0.0 150 11/23/2024
4.0.268 172 11/19/2024
4.0.267 148 11/11/2024
4.0.266 144 11/6/2024
4.0.265 139 11/5/2024
4.0.264 139 11/4/2024
4.0.263 165 11/1/2024
4.0.262 144 10/31/2024
4.0.261 151 10/30/2024
4.0.260 148 10/29/2024
4.0.259 148 10/29/2024
4.0.258 160 10/25/2024
4.0.257 138 10/24/2024
4.0.256 161 10/21/2024
4.0.255 157 10/16/2024
4.0.254 147 10/15/2024
4.0.253 155 10/11/2024
4.0.252 145 10/10/2024
4.0.251 145 10/9/2024
4.0.250 152 10/8/2024
4.0.249 161 10/2/2024
4.0.248 161 10/1/2024
4.0.247 147 9/30/2024
4.0.246 166 9/27/2024
4.0.245 153 9/24/2024
4.0.244 163 9/23/2024
4.0.243 144 9/23/2024
4.0.242 193 9/17/2024
4.0.241 186 9/10/2024
4.0.240 157 9/9/2024
4.0.239 161 9/6/2024
4.0.238 172 9/5/2024
4.0.237 169 9/3/2024
4.0.236 162 9/2/2024
4.0.235 164 8/30/2024
4.0.234 168 8/29/2024
4.0.233 176 8/28/2024
4.0.232 167 8/27/2024
4.0.231 164 8/26/2024
4.0.230 182 8/23/2024
4.0.229 178 8/22/2024
4.0.228 179 8/21/2024
4.0.227 180 8/20/2024
4.0.226 176 8/20/2024
4.0.225 201 8/19/2024
4.0.224 197 8/16/2024
4.0.223 180 8/15/2024
4.0.222 201 8/14/2024
4.0.221 155 8/5/2024
4.0.220 148 8/2/2024
4.0.219 177 8/1/2024
4.0.218 141 7/31/2024
4.0.217 169 7/26/2024
4.0.216 148 7/25/2024
4.0.215 113 7/24/2024
4.0.214 166 7/11/2024
4.0.213 154 7/10/2024
4.0.212 147 7/9/2024
4.0.211 155 7/9/2024
4.0.210 159 7/8/2024
4.0.209 170 7/5/2024
4.0.208 175 7/5/2024
4.0.207 155 7/2/2024
4.0.206 148 7/1/2024
4.0.205 180 6/27/2024
4.0.204 174 6/26/2024
4.0.203 168 6/25/2024
4.0.202 181 6/24/2024
4.0.201 1,050 6/19/2024
4.0.200 182 6/18/2024
4.0.199 151 6/17/2024
4.0.198 159 6/14/2024
4.0.197 153 6/13/2024
4.0.196 165 6/12/2024
4.0.195 172 6/3/2024
4.0.194 159 5/31/2024
4.0.193 191 5/30/2024
4.0.192 162 5/29/2024
4.0.191 180 5/27/2024
4.0.190 162 5/27/2024
4.0.189 152 5/23/2024
4.0.188 163 5/22/2024
4.0.187 197 5/21/2024
4.0.186 182 5/20/2024
4.0.185 177 5/17/2024
4.0.184 171 5/16/2024
4.0.183 178 5/15/2024
4.0.182 175 5/8/2024
4.0.181 162 5/7/2024
4.0.180 182 5/6/2024
4.0.179 184 5/3/2024
4.0.178 736 5/2/2024
4.0.177 141 5/1/2024
4.0.176 172 4/30/2024
4.0.175 161 4/29/2024
4.0.174 163 4/29/2024
4.0.173 183 4/25/2024
4.0.172 179 4/24/2024
4.0.171 188 4/16/2024
4.0.170 173 4/15/2024
4.0.169 173 4/12/2024
4.0.168 169 4/12/2024
4.0.167 192 4/11/2024
4.0.166 199 4/10/2024
4.0.165 174 4/9/2024
4.0.164 178 4/8/2024
4.0.163 176 4/1/2024
4.0.162 157 3/29/2024
4.0.161 180 3/28/2024
4.0.160 161 3/26/2024
4.0.159 186 3/23/2024
4.0.158 184 3/22/2024
4.0.157 185 3/21/2024
4.0.156 163 3/18/2024
4.0.155 190 3/15/2024
4.0.154 179 3/14/2024
4.0.153 184 3/13/2024
4.0.152 207 3/11/2024
4.0.151 186 3/8/2024
4.0.150 182 3/7/2024
4.0.149 172 3/6/2024
4.0.148 179 3/5/2024
4.0.147 999 3/4/2024
4.0.146 198 3/1/2024
4.0.145 200 2/29/2024
4.0.144 199 2/28/2024
4.0.143 201 2/27/2024
4.0.142 201 2/26/2024
4.0.141 207 2/23/2024
4.0.140 205 2/22/2024
4.0.139 183 2/21/2024
4.0.138 206 2/20/2024
4.0.137 446 2/19/2024
4.0.136 167 2/19/2024
4.0.135 168 2/16/2024
4.0.134 179 2/16/2024
4.0.133 171 2/15/2024
4.0.132 177 2/14/2024
4.0.131 167 2/13/2024
4.0.130 196 2/12/2024
4.0.129 171 2/9/2024
4.0.128 220 2/8/2024
4.0.127 180 2/7/2024
4.0.126 197 2/6/2024
4.0.125 151 2/6/2024
4.0.124 164 2/5/2024
4.0.123 537 2/2/2024
4.0.122 190 2/1/2024
4.0.121 163 2/1/2024
4.0.120 195 1/31/2024
4.0.119 252 1/30/2024
4.0.118 191 1/29/2024
4.0.117 204 1/26/2024
4.0.116 184 1/24/2024
4.0.115 161 1/23/2024
4.0.114 171 1/22/2024
4.0.113 375 1/16/2024
4.0.112 219 1/15/2024
4.0.111 188 1/15/2024
4.0.110 185 1/12/2024
4.0.109 176 1/11/2024
4.0.108 173 1/10/2024
4.0.107 365 1/8/2024
4.0.106 241 1/5/2024
4.0.105 359 12/26/2023
4.0.104 206 12/26/2023
4.0.103 217 12/25/2023
4.0.102 197 12/25/2023
4.0.101 278 12/22/2023
4.0.100 220 12/21/2023
4.0.99 232 12/15/2023
4.0.98 199 12/14/2023
4.0.97 184 12/13/2023
4.0.96 208 12/13/2023
4.0.95 358 12/12/2023
4.0.94 203 12/12/2023
4.0.93 195 12/11/2023
4.0.92 188 12/11/2023
4.0.91 243 12/6/2023
4.0.90 179 12/6/2023
4.0.89 178 12/5/2023
4.0.88 227 12/4/2023
4.0.87 234 11/24/2023
4.0.86 186 11/23/2023
4.0.85 192 11/21/2023
4.0.84 195 11/20/2023
4.0.83 187 11/20/2023
4.0.82 229 11/17/2023
4.0.81 673 11/16/2023
4.0.80 196 11/15/2023
4.0.79 195 11/13/2023
4.0.78 207 11/9/2023
4.0.77 210 11/8/2023
4.0.76 161 11/8/2023
4.0.75 189 11/7/2023
4.0.74 198 11/6/2023
4.0.73 191 11/3/2023
4.0.72 237 11/2/2023
4.0.71 178 11/1/2023
4.0.70 181 11/1/2023
4.0.69 224 10/31/2023
4.0.68 208 10/30/2023
4.0.67 201 10/27/2023
4.0.66 219 10/26/2023
4.0.65 220 10/25/2023
4.0.64 208 10/17/2023
4.0.63 170 10/17/2023
4.0.62 227 10/16/2023
4.0.61 234 10/13/2023
4.0.60 258 10/12/2023
4.0.59 194 10/11/2023
4.0.58 231 10/5/2023
4.0.57 209 10/4/2023
4.0.56 200 9/26/2023
4.0.55 203 9/25/2023
4.0.54 226 9/22/2023
4.0.53 225 9/20/2023
4.0.52 218 9/19/2023
4.0.51 209 9/18/2023
4.0.50 202 9/18/2023
4.0.49 252 9/14/2023
4.0.48 230 9/13/2023
4.0.47 194 9/12/2023
4.0.46 281 9/11/2023
4.0.45 197 9/11/2023
4.0.44 185 9/11/2023
4.0.43 317 9/7/2023
4.0.42 201 9/6/2023
4.0.41 265 9/5/2023
4.0.40 209 9/4/2023
4.0.39 223 9/4/2023
4.0.38 260 9/1/2023
4.0.37 267 8/31/2023
4.0.36 254 8/30/2023
4.0.35 272 8/29/2023
4.0.34 213 8/29/2023
4.0.33 296 8/28/2023
4.0.32 273 8/25/2023
4.0.31 255 8/24/2023
4.0.30 237 8/23/2023
4.0.29 253 8/22/2023
4.0.28 250 8/18/2023
4.0.27 263 8/17/2023
4.0.26 235 8/17/2023
4.0.25 224 8/16/2023
4.0.24 323 8/10/2023
4.0.23 273 8/9/2023
4.0.22 282 8/8/2023
4.0.21 245 8/8/2023
4.0.20 357 8/7/2023
4.0.19 251 8/4/2023
4.0.18 311 8/3/2023
4.0.17 285 8/2/2023
4.0.16 290 7/26/2023
4.0.15 265 7/25/2023
4.0.14 287 7/20/2023
4.0.13 282 7/19/2023
4.0.12 268 7/18/2023
4.0.11 214 7/18/2023
4.0.10 269 7/18/2023
4.0.9 225 7/18/2023
4.0.8 344 7/17/2023
4.0.7 241 7/17/2023
4.0.6 623 1/30/2023
4.0.5 480 1/30/2023
4.0.4 478 1/27/2023
4.0.3 590 12/13/2022
4.0.0 387 12/12/2022
3.0.47 1,604 6/10/2022
3.0.45 1,079 4/20/2022
3.0.44 1,100 1/11/2022
3.0.43 719 1/10/2022
3.0.42 1,187 6/17/2021
3.0.41 845 6/16/2021
3.0.40 813 6/16/2021
3.0.39 601 6/16/2021
3.0.38 1,117 1/7/2021
3.0.37 931 12/16/2020
3.0.36 857 12/14/2020
3.0.35 2,414 9/13/2020
3.0.34 988 6/19/2020
3.0.33 1,978 5/12/2020
3.0.32 1,500 5/12/2020
3.0.31 986 4/28/2020
3.0.30 939 4/24/2020
3.0.29 937 4/16/2020
3.0.28 995 4/16/2020
3.0.27 669 4/15/2020
3.0.26 963 4/15/2020
3.0.25 1,021 4/14/2020
3.0.24 716 4/14/2020
3.0.23 1,058 4/10/2020
3.0.22 1,002 4/10/2020
3.0.21 1,039 4/7/2020
3.0.20 2,857 3/26/2020
3.0.19 1,022 3/26/2020
3.0.18 701 3/25/2020
3.0.17 698 3/25/2020
3.0.16 712 3/25/2020
3.0.15 716 3/25/2020
3.0.13 719 3/25/2020
3.0.12 713 3/25/2020
3.0.11 682 3/25/2020
3.0.10 1,248 3/25/2020
3.0.9 1,069 3/22/2020
3.0.8 677 3/22/2020
3.0.7 1,069 3/21/2020
3.0.6 1,695 3/13/2020
3.0.5 737 3/13/2020
3.0.4 1,447 2/28/2020
3.0.3 1,290 2/21/2020
3.0.2 745 2/11/2020
3.0.1 719 2/11/2020
3.0.0 1,890 12/23/2019
2.0.13 750 11/4/2019
2.0.12 824 6/19/2019
2.0.11 794 6/19/2019
2.0.10 1,100 4/17/2019
2.0.9 1,654 2/21/2019
2.0.8 4,107 8/1/2018
2.0.7 1,448 8/1/2018
2.0.6 1,965 6/26/2018
2.0.5 1,329 6/14/2018
2.0.4 1,920 6/1/2018
2.0.3 1,879 5/22/2018
2.0.2 2,472 5/11/2018
2.0.1 2,547 2/13/2018
2.0.0 2,449 1/2/2018
1.0.29 4,060 11/16/2017
1.0.28 1,173 11/16/2017
1.0.27 6,571 10/18/2017
1.0.26 4,778 9/22/2017
1.0.24 1,237 9/22/2017
1.0.23 1,582 9/22/2017
1.0.22 1,244 9/22/2017
1.0.21 1,265 9/22/2017
1.0.19 1,269 9/22/2017
1.0.18 1,260 9/21/2017
1.0.17 2,296 8/4/2017
1.0.16 1,272 7/3/2017
1.0.15 1,282 6/16/2017
1.0.13 1,276 6/16/2017
1.0.12 1,260 6/16/2017
1.0.11 1,280 5/30/2017
1.0.9 1,271 5/25/2017
1.0.8 1,255 5/24/2017
1.0.7 1,280 5/19/2017
1.0.6 1,318 5/17/2017
1.0.4 1,378 4/3/2017
1.0.3 1,397 3/22/2017
1.0.2 1,386 2/2/2017