Data.Modeler 5.0.32

There is a newer version of this package available.
See the version list below for details.
dotnet add package Data.Modeler --version 5.0.32
                    
NuGet\Install-Package Data.Modeler -Version 5.0.32
                    
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.32" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Data.Modeler" Version="5.0.32" />
                    
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.32
                    
#r "nuget: Data.Modeler, 5.0.32"
                    
#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.32
                    
#: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.32
                    
Install as a Cake Addin
#tool nuget:?package=Data.Modeler&version=5.0.32
                    
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.52 13 8/1/2025
5.0.51 79 7/28/2025
5.0.50 118 7/17/2025
5.0.49 109 7/17/2025
5.0.48 179 7/15/2025
5.0.47 136 7/14/2025
5.0.46 136 7/14/2025
5.0.45 178 7/8/2025
5.0.44 484 6/30/2025
5.0.43 130 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 149 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 258 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 135 1/28/2025
5.0.19 135 1/24/2025
5.0.18 141 1/23/2025
5.0.17 118 1/23/2025
5.0.16 161 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 119 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 123 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 124 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 137 10/21/2024
4.0.255 137 10/16/2024
4.0.254 122 10/15/2024
4.0.253 130 10/11/2024
4.0.252 124 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 138 10/1/2024
4.0.247 127 9/30/2024
4.0.246 142 9/27/2024
4.0.245 134 9/24/2024
4.0.244 140 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 146 8/30/2024
4.0.234 142 8/29/2024
4.0.233 149 8/28/2024
4.0.232 145 8/27/2024
4.0.231 148 8/26/2024
4.0.230 164 8/23/2024
4.0.229 159 8/22/2024
4.0.228 160 8/21/2024
4.0.227 161 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 155 8/1/2024
4.0.218 123 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 128 7/9/2024
4.0.211 135 7/9/2024
4.0.210 136 7/8/2024
4.0.209 153 7/5/2024
4.0.208 151 7/5/2024
4.0.207 137 7/2/2024
4.0.206 129 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,030 6/19/2024
4.0.200 157 6/18/2024
4.0.199 132 6/17/2024
4.0.198 139 6/14/2024
4.0.197 136 6/13/2024
4.0.196 145 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 135 5/23/2024
4.0.188 146 5/22/2024
4.0.187 180 5/21/2024
4.0.186 157 5/20/2024
4.0.185 158 5/17/2024
4.0.184 154 5/16/2024
4.0.183 158 5/15/2024
4.0.182 158 5/8/2024
4.0.181 144 5/7/2024
4.0.180 160 5/6/2024
4.0.179 160 5/3/2024
4.0.178 716 5/2/2024
4.0.177 121 5/1/2024
4.0.176 153 4/30/2024
4.0.175 144 4/29/2024
4.0.174 146 4/29/2024
4.0.173 161 4/25/2024
4.0.172 155 4/24/2024
4.0.171 166 4/16/2024
4.0.170 153 4/15/2024
4.0.169 154 4/12/2024
4.0.168 149 4/12/2024
4.0.167 166 4/11/2024
4.0.166 179 4/10/2024
4.0.165 156 4/9/2024
4.0.164 162 4/8/2024
4.0.163 158 4/1/2024
4.0.162 139 3/29/2024
4.0.161 156 3/28/2024
4.0.160 141 3/26/2024
4.0.159 168 3/23/2024
4.0.158 162 3/22/2024
4.0.157 163 3/21/2024
4.0.156 141 3/18/2024
4.0.155 171 3/15/2024
4.0.154 162 3/14/2024
4.0.153 167 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 153 3/6/2024
4.0.148 163 3/5/2024
4.0.147 980 3/4/2024
4.0.146 177 3/1/2024
4.0.145 178 2/29/2024
4.0.144 177 2/28/2024
4.0.143 180 2/27/2024
4.0.142 171 2/26/2024
4.0.141 189 2/23/2024
4.0.140 180 2/22/2024
4.0.139 166 2/21/2024
4.0.138 184 2/20/2024
4.0.137 419 2/19/2024
4.0.136 151 2/19/2024
4.0.135 148 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 133 2/6/2024
4.0.124 146 2/5/2024
4.0.123 517 2/2/2024
4.0.122 164 2/1/2024
4.0.121 147 2/1/2024
4.0.120 171 1/31/2024
4.0.119 235 1/30/2024
4.0.118 168 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 351 1/16/2024
4.0.112 194 1/15/2024
4.0.111 171 1/15/2024
4.0.110 166 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 214 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 340 12/12/2023
4.0.94 179 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 170 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 178 11/23/2023
4.0.85 173 11/21/2023
4.0.84 184 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 202 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 208 10/25/2023
4.0.64 199 10/17/2023
4.0.63 161 10/17/2023
4.0.62 220 10/16/2023
4.0.61 225 10/13/2023
4.0.60 243 10/12/2023
4.0.59 186 10/11/2023
4.0.58 219 10/5/2023
4.0.57 197 10/4/2023
4.0.56 190 9/26/2023
4.0.55 190 9/25/2023
4.0.54 209 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 266 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 184 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 238 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 186 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 251 8/9/2023
4.0.22 251 8/8/2023
4.0.21 224 8/8/2023
4.0.20 335 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 194 7/18/2023
4.0.10 249 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 451 1/27/2023
4.0.3 562 12/13/2022
4.0.0 365 12/12/2022
3.0.47 1,578 6/10/2022
3.0.45 1,045 4/20/2022
3.0.44 1,070 1/11/2022
3.0.43 689 1/10/2022
3.0.42 1,162 6/17/2021
3.0.41 814 6/16/2021
3.0.40 780 6/16/2021
3.0.39 570 6/16/2021
3.0.38 1,086 1/7/2021
3.0.37 901 12/16/2020
3.0.36 829 12/14/2020
3.0.35 2,379 9/13/2020
3.0.34 957 6/19/2020
3.0.33 1,948 5/12/2020
3.0.32 1,468 5/12/2020
3.0.31 960 4/28/2020
3.0.30 913 4/24/2020
3.0.29 900 4/16/2020
3.0.28 969 4/16/2020
3.0.27 642 4/15/2020
3.0.26 933 4/15/2020
3.0.25 993 4/14/2020
3.0.24 686 4/14/2020
3.0.23 1,026 4/10/2020
3.0.22 971 4/10/2020
3.0.21 1,010 4/7/2020
3.0.20 2,827 3/26/2020
3.0.19 997 3/26/2020
3.0.18 668 3/25/2020
3.0.17 666 3/25/2020
3.0.16 677 3/25/2020
3.0.15 690 3/25/2020
3.0.13 684 3/25/2020
3.0.12 687 3/25/2020
3.0.11 655 3/25/2020
3.0.10 1,213 3/25/2020
3.0.9 1,034 3/22/2020
3.0.8 649 3/22/2020
3.0.7 1,033 3/21/2020
3.0.6 1,668 3/13/2020
3.0.5 705 3/13/2020
3.0.4 1,414 2/28/2020
3.0.3 1,263 2/21/2020
3.0.2 718 2/11/2020
3.0.1 692 2/11/2020
3.0.0 1,862 12/23/2019
2.0.13 718 11/4/2019
2.0.12 795 6/19/2019
2.0.11 768 6/19/2019
2.0.10 1,070 4/17/2019
2.0.9 1,627 2/21/2019
2.0.8 4,058 8/1/2018
2.0.7 1,402 8/1/2018
2.0.6 1,895 6/26/2018
2.0.5 1,260 6/14/2018
2.0.4 1,851 6/1/2018
2.0.3 1,813 5/22/2018
2.0.2 2,403 5/11/2018
2.0.1 2,480 2/13/2018
2.0.0 2,380 1/2/2018
1.0.29 4,010 11/16/2017
1.0.28 1,120 11/16/2017
1.0.27 6,525 10/18/2017
1.0.26 4,724 9/22/2017
1.0.24 1,190 9/22/2017
1.0.23 1,533 9/22/2017
1.0.22 1,197 9/22/2017
1.0.21 1,211 9/22/2017
1.0.19 1,215 9/22/2017
1.0.18 1,208 9/21/2017
1.0.17 2,249 8/4/2017
1.0.16 1,219 7/3/2017
1.0.15 1,233 6/16/2017
1.0.13 1,227 6/16/2017
1.0.12 1,213 6/16/2017
1.0.11 1,232 5/30/2017
1.0.9 1,223 5/25/2017
1.0.8 1,207 5/24/2017
1.0.7 1,233 5/19/2017
1.0.6 1,270 5/17/2017
1.0.4 1,332 4/3/2017
1.0.3 1,344 3/22/2017
1.0.2 1,335 2/2/2017