Data.Modeler 5.0.64

There is a newer version of this package available.
See the version list below for details.
dotnet add package Data.Modeler --version 5.0.64
                    
NuGet\Install-Package Data.Modeler -Version 5.0.64
                    
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.64" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Data.Modeler" Version="5.0.64" />
                    
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.64
                    
#r "nuget: Data.Modeler, 5.0.64"
                    
#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.64
                    
#: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.64
                    
Install as a Cake Addin
#tool nuget:?package=Data.Modeler&version=5.0.64
                    
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.65 109 8/20/2025
5.0.64 100 8/20/2025
5.0.63 101 8/20/2025
5.0.62 97 8/19/2025
5.0.61 97 8/19/2025
5.0.60 97 8/19/2025
5.0.59 48 8/15/2025
5.0.58 270 8/6/2025
5.0.57 233 8/5/2025
5.0.56 211 8/5/2025
5.0.55 212 8/5/2025
5.0.54 244 8/5/2025
5.0.53 187 8/5/2025
5.0.52 60 8/1/2025
5.0.51 105 7/28/2025
5.0.50 128 7/17/2025
5.0.49 119 7/17/2025
5.0.48 189 7/15/2025
5.0.47 145 7/14/2025
5.0.46 145 7/14/2025
5.0.45 187 7/8/2025
5.0.44 496 6/30/2025
5.0.43 140 6/30/2025
5.0.42 139 6/30/2025
5.0.41 148 6/27/2025
5.0.40 186 6/27/2025
5.0.39 135 6/27/2025
5.0.38 143 6/27/2025
5.0.37 139 6/27/2025
5.0.36 184 6/26/2025
5.0.35 157 6/18/2025
5.0.34 308 6/10/2025
5.0.33 107 5/30/2025
5.0.32 114 5/23/2025
5.0.31 250 5/14/2025
5.0.30 128 5/2/2025
5.0.29 182 4/28/2025
5.0.28 140 4/11/2025
5.0.27 174 3/17/2025
5.0.26 149 2/24/2025
5.0.25 171 2/12/2025
5.0.24 275 2/3/2025
5.0.23 188 1/30/2025
5.0.22 158 1/29/2025
5.0.21 122 1/29/2025
5.0.20 143 1/28/2025
5.0.19 143 1/24/2025
5.0.18 148 1/23/2025
5.0.17 126 1/23/2025
5.0.16 170 1/16/2025
5.0.15 144 1/15/2025
5.0.14 129 1/14/2025
5.0.13 131 1/13/2025
5.0.12 142 1/10/2025
5.0.11 143 1/9/2025
5.0.10 120 1/8/2025
5.0.9 199 12/17/2024
5.0.8 140 12/17/2024
5.0.7 182 12/10/2024
5.0.6 144 12/9/2024
5.0.5 213 11/26/2024
5.0.4 174 11/26/2024
5.0.3 130 11/25/2024
5.0.2 167 11/24/2024
5.0.1 147 11/23/2024
5.0.0 140 11/23/2024
4.0.268 160 11/19/2024
4.0.267 137 11/11/2024
4.0.266 134 11/6/2024
4.0.265 129 11/5/2024
4.0.264 129 11/4/2024
4.0.263 152 11/1/2024
4.0.262 133 10/31/2024
4.0.261 139 10/30/2024
4.0.260 138 10/29/2024
4.0.259 136 10/29/2024
4.0.258 146 10/25/2024
4.0.257 127 10/24/2024
4.0.256 147 10/21/2024
4.0.255 146 10/16/2024
4.0.254 130 10/15/2024
4.0.253 140 10/11/2024
4.0.252 134 10/10/2024
4.0.251 134 10/9/2024
4.0.250 142 10/8/2024
4.0.249 148 10/2/2024
4.0.248 146 10/1/2024
4.0.247 137 9/30/2024
4.0.246 150 9/27/2024
4.0.245 141 9/24/2024
4.0.244 151 9/23/2024
4.0.243 133 9/23/2024
4.0.242 178 9/17/2024
4.0.241 171 9/10/2024
4.0.240 147 9/9/2024
4.0.239 148 9/6/2024
4.0.238 156 9/5/2024
4.0.237 158 9/3/2024
4.0.236 153 9/2/2024
4.0.235 154 8/30/2024
4.0.234 158 8/29/2024
4.0.233 159 8/28/2024
4.0.232 153 8/27/2024
4.0.231 155 8/26/2024
4.0.230 172 8/23/2024
4.0.229 168 8/22/2024
4.0.228 168 8/21/2024
4.0.227 169 8/20/2024
4.0.226 167 8/20/2024
4.0.225 191 8/19/2024
4.0.224 186 8/16/2024
4.0.223 165 8/15/2024
4.0.222 189 8/14/2024
4.0.221 146 8/5/2024
4.0.220 139 8/2/2024
4.0.219 164 8/1/2024
4.0.218 131 7/31/2024
4.0.217 157 7/26/2024
4.0.216 133 7/25/2024
4.0.215 103 7/24/2024
4.0.214 157 7/11/2024
4.0.213 142 7/10/2024
4.0.212 137 7/9/2024
4.0.211 144 7/9/2024
4.0.210 143 7/8/2024
4.0.209 160 7/5/2024
4.0.208 159 7/5/2024
4.0.207 145 7/2/2024
4.0.206 138 7/1/2024
4.0.205 166 6/27/2024
4.0.204 159 6/26/2024
4.0.203 158 6/25/2024
4.0.202 166 6/24/2024
4.0.201 1,040 6/19/2024
4.0.200 168 6/18/2024
4.0.199 141 6/17/2024
4.0.198 148 6/14/2024
4.0.197 143 6/13/2024
4.0.196 153 6/12/2024
4.0.195 162 6/3/2024
4.0.194 149 5/31/2024
4.0.193 174 5/30/2024
4.0.192 151 5/29/2024
4.0.191 171 5/27/2024
4.0.190 152 5/27/2024
4.0.189 142 5/23/2024
4.0.188 153 5/22/2024
4.0.187 188 5/21/2024
4.0.186 166 5/20/2024
4.0.185 168 5/17/2024
4.0.184 160 5/16/2024
4.0.183 167 5/15/2024
4.0.182 165 5/8/2024
4.0.181 151 5/7/2024
4.0.180 168 5/6/2024
4.0.179 167 5/3/2024
4.0.178 726 5/2/2024
4.0.177 130 5/1/2024
4.0.176 160 4/30/2024
4.0.175 152 4/29/2024
4.0.174 154 4/29/2024
4.0.173 169 4/25/2024
4.0.172 165 4/24/2024
4.0.171 175 4/16/2024
4.0.170 162 4/15/2024
4.0.169 162 4/12/2024
4.0.168 157 4/12/2024
4.0.167 176 4/11/2024
4.0.166 187 4/10/2024
4.0.165 164 4/9/2024
4.0.164 169 4/8/2024
4.0.163 165 4/1/2024
4.0.162 147 3/29/2024
4.0.161 163 3/28/2024
4.0.160 149 3/26/2024
4.0.159 175 3/23/2024
4.0.158 168 3/22/2024
4.0.157 170 3/21/2024
4.0.156 148 3/18/2024
4.0.155 178 3/15/2024
4.0.154 170 3/14/2024
4.0.153 174 3/13/2024
4.0.152 188 3/11/2024
4.0.151 170 3/8/2024
4.0.150 169 3/7/2024
4.0.149 161 3/6/2024
4.0.148 169 3/5/2024
4.0.147 987 3/4/2024
4.0.146 186 3/1/2024
4.0.145 184 2/29/2024
4.0.144 183 2/28/2024
4.0.143 187 2/27/2024
4.0.142 180 2/26/2024
4.0.141 196 2/23/2024
4.0.140 189 2/22/2024
4.0.139 173 2/21/2024
4.0.138 194 2/20/2024
4.0.137 427 2/19/2024
4.0.136 157 2/19/2024
4.0.135 157 2/16/2024
4.0.134 162 2/16/2024
4.0.133 161 2/15/2024
4.0.132 168 2/14/2024
4.0.131 157 2/13/2024
4.0.130 187 2/12/2024
4.0.129 161 2/9/2024
4.0.128 205 2/8/2024
4.0.127 166 2/7/2024
4.0.126 180 2/6/2024
4.0.125 140 2/6/2024
4.0.124 153 2/5/2024
4.0.123 525 2/2/2024
4.0.122 173 2/1/2024
4.0.121 153 2/1/2024
4.0.120 178 1/31/2024
4.0.119 243 1/30/2024
4.0.118 176 1/29/2024
4.0.117 191 1/26/2024
4.0.116 167 1/24/2024
4.0.115 151 1/23/2024
4.0.114 159 1/22/2024
4.0.113 360 1/16/2024
4.0.112 201 1/15/2024
4.0.111 177 1/15/2024
4.0.110 173 1/12/2024
4.0.109 160 1/11/2024
4.0.108 164 1/10/2024
4.0.107 348 1/8/2024
4.0.106 228 1/5/2024
4.0.105 349 12/26/2023
4.0.104 186 12/26/2023
4.0.103 206 12/25/2023
4.0.102 182 12/25/2023
4.0.101 265 12/22/2023
4.0.100 206 12/21/2023
4.0.99 222 12/15/2023
4.0.98 186 12/14/2023
4.0.97 169 12/13/2023
4.0.96 195 12/13/2023
4.0.95 349 12/12/2023
4.0.94 187 12/12/2023
4.0.93 185 12/11/2023
4.0.92 178 12/11/2023
4.0.91 235 12/6/2023
4.0.90 178 12/6/2023
4.0.89 173 12/5/2023
4.0.88 224 12/4/2023
4.0.87 230 11/24/2023
4.0.86 183 11/23/2023
4.0.85 178 11/21/2023
4.0.84 189 11/20/2023
4.0.83 179 11/20/2023
4.0.82 218 11/17/2023
4.0.81 671 11/16/2023
4.0.80 190 11/15/2023
4.0.79 190 11/13/2023
4.0.78 200 11/9/2023
4.0.77 209 11/8/2023
4.0.76 159 11/8/2023
4.0.75 179 11/7/2023
4.0.74 192 11/6/2023
4.0.73 187 11/3/2023
4.0.72 230 11/2/2023
4.0.71 175 11/1/2023
4.0.70 173 11/1/2023
4.0.69 215 10/31/2023
4.0.68 203 10/30/2023
4.0.67 199 10/27/2023
4.0.66 207 10/26/2023
4.0.65 214 10/25/2023
4.0.64 206 10/17/2023
4.0.63 167 10/17/2023
4.0.62 225 10/16/2023
4.0.61 232 10/13/2023
4.0.60 250 10/12/2023
4.0.59 191 10/11/2023
4.0.58 227 10/5/2023
4.0.57 204 10/4/2023
4.0.56 197 9/26/2023
4.0.55 197 9/25/2023
4.0.54 215 9/22/2023
4.0.53 223 9/20/2023
4.0.52 212 9/19/2023
4.0.51 205 9/18/2023
4.0.50 191 9/18/2023
4.0.49 248 9/14/2023
4.0.48 225 9/13/2023
4.0.47 190 9/12/2023
4.0.46 274 9/11/2023
4.0.45 192 9/11/2023
4.0.44 179 9/11/2023
4.0.43 308 9/7/2023
4.0.42 192 9/6/2023
4.0.41 256 9/5/2023
4.0.40 200 9/4/2023
4.0.39 209 9/4/2023
4.0.38 247 9/1/2023
4.0.37 253 8/31/2023
4.0.36 239 8/30/2023
4.0.35 261 8/29/2023
4.0.34 197 8/29/2023
4.0.33 283 8/28/2023
4.0.32 258 8/25/2023
4.0.31 246 8/24/2023
4.0.30 228 8/23/2023
4.0.29 241 8/22/2023
4.0.28 239 8/18/2023
4.0.27 252 8/17/2023
4.0.26 226 8/17/2023
4.0.25 214 8/16/2023
4.0.24 308 8/10/2023
4.0.23 261 8/9/2023
4.0.22 260 8/8/2023
4.0.21 235 8/8/2023
4.0.20 345 8/7/2023
4.0.19 239 8/4/2023
4.0.18 300 8/3/2023
4.0.17 269 8/2/2023
4.0.16 277 7/26/2023
4.0.15 255 7/25/2023
4.0.14 277 7/20/2023
4.0.13 269 7/19/2023
4.0.12 252 7/18/2023
4.0.11 204 7/18/2023
4.0.10 258 7/18/2023
4.0.9 214 7/18/2023
4.0.8 331 7/17/2023
4.0.7 229 7/17/2023
4.0.6 607 1/30/2023
4.0.5 465 1/30/2023
4.0.4 467 1/27/2023
4.0.3 575 12/13/2022
4.0.0 376 12/12/2022
3.0.47 1,591 6/10/2022
3.0.45 1,058 4/20/2022
3.0.44 1,081 1/11/2022
3.0.43 700 1/10/2022
3.0.42 1,175 6/17/2021
3.0.41 827 6/16/2021
3.0.40 793 6/16/2021
3.0.39 583 6/16/2021
3.0.38 1,102 1/7/2021
3.0.37 915 12/16/2020
3.0.36 844 12/14/2020
3.0.35 2,394 9/13/2020
3.0.34 971 6/19/2020
3.0.33 1,964 5/12/2020
3.0.32 1,482 5/12/2020
3.0.31 974 4/28/2020
3.0.30 927 4/24/2020
3.0.29 914 4/16/2020
3.0.28 983 4/16/2020
3.0.27 657 4/15/2020
3.0.26 947 4/15/2020
3.0.25 1,007 4/14/2020
3.0.24 702 4/14/2020
3.0.23 1,041 4/10/2020
3.0.22 986 4/10/2020
3.0.21 1,024 4/7/2020
3.0.20 2,844 3/26/2020
3.0.19 1,011 3/26/2020
3.0.18 683 3/25/2020
3.0.17 681 3/25/2020
3.0.16 693 3/25/2020
3.0.15 704 3/25/2020
3.0.13 699 3/25/2020
3.0.12 702 3/25/2020
3.0.11 671 3/25/2020
3.0.10 1,228 3/25/2020
3.0.9 1,050 3/22/2020
3.0.8 663 3/22/2020
3.0.7 1,050 3/21/2020
3.0.6 1,682 3/13/2020
3.0.5 721 3/13/2020
3.0.4 1,430 2/28/2020
3.0.3 1,279 2/21/2020
3.0.2 733 2/11/2020
3.0.1 707 2/11/2020
3.0.0 1,876 12/23/2019
2.0.13 733 11/4/2019
2.0.12 812 6/19/2019
2.0.11 782 6/19/2019
2.0.10 1,086 4/17/2019
2.0.9 1,642 2/21/2019
2.0.8 4,084 8/1/2018
2.0.7 1,426 8/1/2018
2.0.6 1,933 6/26/2018
2.0.5 1,298 6/14/2018
2.0.4 1,888 6/1/2018
2.0.3 1,848 5/22/2018
2.0.2 2,439 5/11/2018
2.0.1 2,516 2/13/2018
2.0.0 2,417 1/2/2018
1.0.29 4,035 11/16/2017
1.0.28 1,146 11/16/2017
1.0.27 6,549 10/18/2017
1.0.26 4,752 9/22/2017
1.0.24 1,214 9/22/2017
1.0.23 1,557 9/22/2017
1.0.22 1,222 9/22/2017
1.0.21 1,236 9/22/2017
1.0.19 1,240 9/22/2017
1.0.18 1,234 9/21/2017
1.0.17 2,273 8/4/2017
1.0.16 1,244 7/3/2017
1.0.15 1,258 6/16/2017
1.0.13 1,253 6/16/2017
1.0.12 1,238 6/16/2017
1.0.11 1,258 5/30/2017
1.0.9 1,248 5/25/2017
1.0.8 1,233 5/24/2017
1.0.7 1,258 5/19/2017
1.0.6 1,296 5/17/2017
1.0.4 1,357 4/3/2017
1.0.3 1,368 3/22/2017
1.0.2 1,361 2/2/2017