Data.Modeler 5.0.39

There is a newer version of this package available.
See the version list below for details.
dotnet add package Data.Modeler --version 5.0.39
                    
NuGet\Install-Package Data.Modeler -Version 5.0.39
                    
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.39" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Data.Modeler" Version="5.0.39" />
                    
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.39
                    
#r "nuget: Data.Modeler, 5.0.39"
                    
#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.39
                    
#: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.39
                    
Install as a Cake Addin
#tool nuget:?package=Data.Modeler&version=5.0.39
                    
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.50 114 7/17/2025
5.0.49 106 7/17/2025
5.0.48 177 7/15/2025
5.0.47 134 7/14/2025
5.0.46 134 7/14/2025
5.0.45 176 7/8/2025
5.0.44 482 6/30/2025
5.0.43 128 6/30/2025
5.0.42 129 6/30/2025
5.0.41 139 6/27/2025
5.0.40 177 6/27/2025
5.0.39 125 6/27/2025
5.0.38 133 6/27/2025
5.0.37 130 6/27/2025
5.0.36 174 6/26/2025
5.0.35 147 6/18/2025
5.0.34 296 6/10/2025
5.0.33 96 5/30/2025
5.0.32 103 5/23/2025
5.0.31 241 5/14/2025
5.0.30 119 5/2/2025
5.0.29 172 4/28/2025
5.0.28 129 4/11/2025
5.0.27 164 3/17/2025
5.0.26 138 2/24/2025
5.0.25 161 2/12/2025
5.0.24 254 2/3/2025
5.0.23 179 1/30/2025
5.0.22 150 1/29/2025
5.0.21 113 1/29/2025
5.0.20 135 1/28/2025
5.0.19 132 1/24/2025
5.0.18 141 1/23/2025
5.0.17 117 1/23/2025
5.0.16 161 1/16/2025
5.0.15 136 1/15/2025
5.0.14 120 1/14/2025
5.0.13 124 1/13/2025
5.0.12 132 1/10/2025
5.0.11 134 1/9/2025
5.0.10 112 1/8/2025
5.0.9 192 12/17/2024
5.0.8 131 12/17/2024
5.0.7 173 12/10/2024
5.0.6 136 12/9/2024
5.0.5 202 11/26/2024
5.0.4 166 11/26/2024
5.0.3 119 11/25/2024
5.0.2 157 11/24/2024
5.0.1 138 11/23/2024
5.0.0 133 11/23/2024
4.0.268 152 11/19/2024
4.0.267 129 11/11/2024
4.0.266 123 11/6/2024
4.0.265 121 11/5/2024
4.0.264 121 11/4/2024
4.0.263 141 11/1/2024
4.0.262 123 10/31/2024
4.0.261 131 10/30/2024
4.0.260 124 10/29/2024
4.0.259 126 10/29/2024
4.0.258 138 10/25/2024
4.0.257 120 10/24/2024
4.0.256 135 10/21/2024
4.0.255 137 10/16/2024
4.0.254 120 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 137 10/1/2024
4.0.247 127 9/30/2024
4.0.246 140 9/27/2024
4.0.245 134 9/24/2024
4.0.244 139 9/23/2024
4.0.243 125 9/23/2024
4.0.242 169 9/17/2024
4.0.241 159 9/10/2024
4.0.240 134 9/9/2024
4.0.239 138 9/6/2024
4.0.238 147 9/5/2024
4.0.237 145 9/3/2024
4.0.236 146 9/2/2024
4.0.235 145 8/30/2024
4.0.234 141 8/29/2024
4.0.233 147 8/28/2024
4.0.232 144 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 158 8/20/2024
4.0.225 181 8/19/2024
4.0.224 176 8/16/2024
4.0.223 157 8/15/2024
4.0.222 179 8/14/2024
4.0.221 137 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 147 7/26/2024
4.0.216 124 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 127 7/9/2024
4.0.211 134 7/9/2024
4.0.210 134 7/8/2024
4.0.209 152 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 149 6/26/2024
4.0.203 150 6/25/2024
4.0.202 154 6/24/2024
4.0.201 1,030 6/19/2024
4.0.200 156 6/18/2024
4.0.199 132 6/17/2024
4.0.198 139 6/14/2024
4.0.197 135 6/13/2024
4.0.196 144 6/12/2024
4.0.195 155 6/3/2024
4.0.194 141 5/31/2024
4.0.193 166 5/30/2024
4.0.192 142 5/29/2024
4.0.191 163 5/27/2024
4.0.190 144 5/27/2024
4.0.189 135 5/23/2024
4.0.188 146 5/22/2024
4.0.187 179 5/21/2024
4.0.186 155 5/20/2024
4.0.185 158 5/17/2024
4.0.184 153 5/16/2024
4.0.183 157 5/15/2024
4.0.182 158 5/8/2024
4.0.181 143 5/7/2024
4.0.180 159 5/6/2024
4.0.179 159 5/3/2024
4.0.178 716 5/2/2024
4.0.177 120 5/1/2024
4.0.176 151 4/30/2024
4.0.175 144 4/29/2024
4.0.174 146 4/29/2024
4.0.173 159 4/25/2024
4.0.172 154 4/24/2024
4.0.171 165 4/16/2024
4.0.170 153 4/15/2024
4.0.169 154 4/12/2024
4.0.168 147 4/12/2024
4.0.167 164 4/11/2024
4.0.166 177 4/10/2024
4.0.165 155 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 155 3/28/2024
4.0.160 141 3/26/2024
4.0.159 167 3/23/2024
4.0.158 160 3/22/2024
4.0.157 161 3/21/2024
4.0.156 140 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 178 3/11/2024
4.0.151 162 3/8/2024
4.0.150 163 3/7/2024
4.0.149 153 3/6/2024
4.0.148 162 3/5/2024
4.0.147 979 3/4/2024
4.0.146 176 3/1/2024
4.0.145 178 2/29/2024
4.0.144 176 2/28/2024
4.0.143 179 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 182 2/20/2024
4.0.137 418 2/19/2024
4.0.136 151 2/19/2024
4.0.135 147 2/16/2024
4.0.134 154 2/16/2024
4.0.133 154 2/15/2024
4.0.132 161 2/14/2024
4.0.131 150 2/13/2024
4.0.130 180 2/12/2024
4.0.129 153 2/9/2024
4.0.128 199 2/8/2024
4.0.127 159 2/7/2024
4.0.126 170 2/6/2024
4.0.125 133 2/6/2024
4.0.124 146 2/5/2024
4.0.123 516 2/2/2024
4.0.122 163 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 166 1/29/2024
4.0.117 182 1/26/2024
4.0.116 156 1/24/2024
4.0.115 144 1/23/2024
4.0.114 151 1/22/2024
4.0.113 349 1/16/2024
4.0.112 194 1/15/2024
4.0.111 170 1/15/2024
4.0.110 166 1/12/2024
4.0.109 152 1/11/2024
4.0.108 156 1/10/2024
4.0.107 338 1/8/2024
4.0.106 219 1/5/2024
4.0.105 342 12/26/2023
4.0.104 175 12/26/2023
4.0.103 196 12/25/2023
4.0.102 173 12/25/2023
4.0.101 258 12/22/2023
4.0.100 199 12/21/2023
4.0.99 214 12/15/2023
4.0.98 178 12/14/2023
4.0.97 161 12/13/2023
4.0.96 186 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 229 12/6/2023
4.0.90 169 12/6/2023
4.0.89 167 12/5/2023
4.0.88 217 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 180 11/20/2023
4.0.83 172 11/20/2023
4.0.82 209 11/17/2023
4.0.81 665 11/16/2023
4.0.80 181 11/15/2023
4.0.79 183 11/13/2023
4.0.78 192 11/9/2023
4.0.77 201 11/8/2023
4.0.76 154 11/8/2023
4.0.75 174 11/7/2023
4.0.74 186 11/6/2023
4.0.73 180 11/3/2023
4.0.72 220 11/2/2023
4.0.71 169 11/1/2023
4.0.70 163 11/1/2023
4.0.69 208 10/31/2023
4.0.68 194 10/30/2023
4.0.67 192 10/27/2023
4.0.66 200 10/26/2023
4.0.65 206 10/25/2023
4.0.64 197 10/17/2023
4.0.63 159 10/17/2023
4.0.62 217 10/16/2023
4.0.61 223 10/13/2023
4.0.60 238 10/12/2023
4.0.59 184 10/11/2023
4.0.58 217 10/5/2023
4.0.57 194 10/4/2023
4.0.56 188 9/26/2023
4.0.55 188 9/25/2023
4.0.54 205 9/22/2023
4.0.53 212 9/20/2023
4.0.52 203 9/19/2023
4.0.51 197 9/18/2023
4.0.50 183 9/18/2023
4.0.49 240 9/14/2023
4.0.48 217 9/13/2023
4.0.47 182 9/12/2023
4.0.46 264 9/11/2023
4.0.45 183 9/11/2023
4.0.44 171 9/11/2023
4.0.43 298 9/7/2023
4.0.42 182 9/6/2023
4.0.41 246 9/5/2023
4.0.40 189 9/4/2023
4.0.39 197 9/4/2023
4.0.38 233 9/1/2023
4.0.37 238 8/31/2023
4.0.36 228 8/30/2023
4.0.35 249 8/29/2023
4.0.34 183 8/29/2023
4.0.33 268 8/28/2023
4.0.32 245 8/25/2023
4.0.31 234 8/24/2023
4.0.30 216 8/23/2023
4.0.29 225 8/22/2023
4.0.28 227 8/18/2023
4.0.27 238 8/17/2023
4.0.26 215 8/17/2023
4.0.25 201 8/16/2023
4.0.24 296 8/10/2023
4.0.23 248 8/9/2023
4.0.22 247 8/8/2023
4.0.21 221 8/8/2023
4.0.20 332 8/7/2023
4.0.19 228 8/4/2023
4.0.18 287 8/3/2023
4.0.17 257 8/2/2023
4.0.16 263 7/26/2023
4.0.15 243 7/25/2023
4.0.14 264 7/20/2023
4.0.13 254 7/19/2023
4.0.12 239 7/18/2023
4.0.11 190 7/18/2023
4.0.10 245 7/18/2023
4.0.9 200 7/18/2023
4.0.8 316 7/17/2023
4.0.7 214 7/17/2023
4.0.6 587 1/30/2023
4.0.5 450 1/30/2023
4.0.4 448 1/27/2023
4.0.3 559 12/13/2022
4.0.0 362 12/12/2022
3.0.47 1,572 6/10/2022
3.0.45 1,040 4/20/2022
3.0.44 1,063 1/11/2022
3.0.43 683 1/10/2022
3.0.42 1,157 6/17/2021
3.0.41 809 6/16/2021
3.0.40 774 6/16/2021
3.0.39 565 6/16/2021
3.0.38 1,080 1/7/2021
3.0.37 895 12/16/2020
3.0.36 824 12/14/2020
3.0.35 2,374 9/13/2020
3.0.34 950 6/19/2020
3.0.33 1,942 5/12/2020
3.0.32 1,463 5/12/2020
3.0.31 954 4/28/2020
3.0.30 907 4/24/2020
3.0.29 894 4/16/2020
3.0.28 963 4/16/2020
3.0.27 637 4/15/2020
3.0.26 928 4/15/2020
3.0.25 988 4/14/2020
3.0.24 679 4/14/2020
3.0.23 1,020 4/10/2020
3.0.22 966 4/10/2020
3.0.21 1,002 4/7/2020
3.0.20 2,822 3/26/2020
3.0.19 992 3/26/2020
3.0.18 661 3/25/2020
3.0.17 659 3/25/2020
3.0.16 670 3/25/2020
3.0.15 684 3/25/2020
3.0.13 676 3/25/2020
3.0.12 682 3/25/2020
3.0.11 650 3/25/2020
3.0.10 1,207 3/25/2020
3.0.9 1,028 3/22/2020
3.0.8 643 3/22/2020
3.0.7 1,026 3/21/2020
3.0.6 1,663 3/13/2020
3.0.5 697 3/13/2020
3.0.4 1,408 2/28/2020
3.0.3 1,258 2/21/2020
3.0.2 712 2/11/2020
3.0.1 687 2/11/2020
3.0.0 1,857 12/23/2019
2.0.13 711 11/4/2019
2.0.12 789 6/19/2019
2.0.11 763 6/19/2019
2.0.10 1,063 4/17/2019
2.0.9 1,622 2/21/2019
2.0.8 4,049 8/1/2018
2.0.7 1,393 8/1/2018
2.0.6 1,882 6/26/2018
2.0.5 1,247 6/14/2018
2.0.4 1,838 6/1/2018
2.0.3 1,800 5/22/2018
2.0.2 2,390 5/11/2018
2.0.1 2,465 2/13/2018
2.0.0 2,365 1/2/2018
1.0.29 3,999 11/16/2017
1.0.28 1,110 11/16/2017
1.0.27 6,515 10/18/2017
1.0.26 4,714 9/22/2017
1.0.24 1,179 9/22/2017
1.0.23 1,523 9/22/2017
1.0.22 1,186 9/22/2017
1.0.21 1,200 9/22/2017
1.0.19 1,204 9/22/2017
1.0.18 1,197 9/21/2017
1.0.17 2,239 8/4/2017
1.0.16 1,207 7/3/2017
1.0.15 1,223 6/16/2017
1.0.13 1,217 6/16/2017
1.0.12 1,202 6/16/2017
1.0.11 1,222 5/30/2017
1.0.9 1,212 5/25/2017
1.0.8 1,197 5/24/2017
1.0.7 1,223 5/19/2017
1.0.6 1,260 5/17/2017
1.0.4 1,321 4/3/2017
1.0.3 1,333 3/22/2017
1.0.2 1,322 2/2/2017