Data.Modeler 5.0.5

There is a newer version of this package available.
See the version list below for details.
dotnet add package Data.Modeler --version 5.0.5                
NuGet\Install-Package Data.Modeler -Version 5.0.5                
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.5" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Data.Modeler --version 5.0.5                
#r "nuget: Data.Modeler, 5.0.5"                
#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.
// Install Data.Modeler as a Cake Addin
#addin nuget:?package=Data.Modeler&version=5.0.5

// Install Data.Modeler as a Cake Tool
#tool nuget:?package=Data.Modeler&version=5.0.5                

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. 
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.12 5 1/10/2025
5.0.11 17 1/9/2025
5.0.10 13 1/8/2025
5.0.9 149 12/17/2024
5.0.8 80 12/17/2024
5.0.7 129 12/10/2024
5.0.6 95 12/9/2024
5.0.5 161 11/26/2024
5.0.4 125 11/26/2024
5.0.3 85 11/25/2024
5.0.2 115 11/24/2024
5.0.1 99 11/23/2024
5.0.0 95 11/23/2024
4.0.268 110 11/19/2024
4.0.267 97 11/11/2024
4.0.266 90 11/6/2024
4.0.265 88 11/5/2024
4.0.264 89 11/4/2024
4.0.263 99 11/1/2024
4.0.262 87 10/31/2024
4.0.261 92 10/30/2024
4.0.260 90 10/29/2024
4.0.259 89 10/29/2024
4.0.258 99 10/25/2024
4.0.257 91 10/24/2024
4.0.256 92 10/21/2024
4.0.255 101 10/16/2024
4.0.254 84 10/15/2024
4.0.253 93 10/11/2024
4.0.252 89 10/10/2024
4.0.251 95 10/9/2024
4.0.250 98 10/8/2024
4.0.249 93 10/2/2024
4.0.248 91 10/1/2024
4.0.247 97 9/30/2024
4.0.246 99 9/27/2024
4.0.245 93 9/24/2024
4.0.244 106 9/23/2024
4.0.243 93 9/23/2024
4.0.242 133 9/17/2024
4.0.241 121 9/10/2024
4.0.240 106 9/9/2024
4.0.239 106 9/6/2024
4.0.238 109 9/5/2024
4.0.237 116 9/3/2024
4.0.236 116 9/2/2024
4.0.235 108 8/30/2024
4.0.234 112 8/29/2024
4.0.233 111 8/28/2024
4.0.232 114 8/27/2024
4.0.231 119 8/26/2024
4.0.230 134 8/23/2024
4.0.229 127 8/22/2024
4.0.228 131 8/21/2024
4.0.227 131 8/20/2024
4.0.226 131 8/20/2024
4.0.225 152 8/19/2024
4.0.224 142 8/16/2024
4.0.223 125 8/15/2024
4.0.222 141 8/14/2024
4.0.221 105 8/5/2024
4.0.220 102 8/2/2024
4.0.219 114 8/1/2024
4.0.218 93 7/31/2024
4.0.217 114 7/26/2024
4.0.216 90 7/25/2024
4.0.215 68 7/24/2024
4.0.214 120 7/11/2024
4.0.213 103 7/10/2024
4.0.212 98 7/9/2024
4.0.211 95 7/9/2024
4.0.210 99 7/8/2024
4.0.209 118 7/5/2024
4.0.208 110 7/5/2024
4.0.207 108 7/2/2024
4.0.206 102 7/1/2024
4.0.205 120 6/27/2024
4.0.204 106 6/26/2024
4.0.203 120 6/25/2024
4.0.202 110 6/24/2024
4.0.201 988 6/19/2024
4.0.200 120 6/18/2024
4.0.199 102 6/17/2024
4.0.198 108 6/14/2024
4.0.197 102 6/13/2024
4.0.196 114 6/12/2024
4.0.195 127 6/3/2024
4.0.194 114 5/31/2024
4.0.193 126 5/30/2024
4.0.192 111 5/29/2024
4.0.191 137 5/27/2024
4.0.190 104 5/27/2024
4.0.189 107 5/23/2024
4.0.188 118 5/22/2024
4.0.187 151 5/21/2024
4.0.186 121 5/20/2024
4.0.185 127 5/17/2024
4.0.184 125 5/16/2024
4.0.183 130 5/15/2024
4.0.182 124 5/8/2024
4.0.181 108 5/7/2024
4.0.180 124 5/6/2024
4.0.179 121 5/3/2024
4.0.178 685 5/2/2024
4.0.177 88 5/1/2024
4.0.176 116 4/30/2024
4.0.175 119 4/29/2024
4.0.174 117 4/29/2024
4.0.173 122 4/25/2024
4.0.172 121 4/24/2024
4.0.171 128 4/16/2024
4.0.170 124 4/15/2024
4.0.169 107 4/12/2024
4.0.168 111 4/12/2024
4.0.167 125 4/11/2024
4.0.166 138 4/10/2024
4.0.165 125 4/9/2024
4.0.164 127 4/8/2024
4.0.163 127 4/1/2024
4.0.162 112 3/29/2024
4.0.161 114 3/28/2024
4.0.160 107 3/26/2024
4.0.159 136 3/23/2024
4.0.158 126 3/22/2024
4.0.157 121 3/21/2024
4.0.156 113 3/18/2024
4.0.155 142 3/15/2024
4.0.154 128 3/14/2024
4.0.153 137 3/13/2024
4.0.152 142 3/11/2024
4.0.151 127 3/8/2024
4.0.150 131 3/7/2024
4.0.149 126 3/6/2024
4.0.148 127 3/5/2024
4.0.147 949 3/4/2024
4.0.146 146 3/1/2024
4.0.145 143 2/29/2024
4.0.144 134 2/28/2024
4.0.143 142 2/27/2024
4.0.142 127 2/26/2024
4.0.141 155 2/23/2024
4.0.140 132 2/22/2024
4.0.139 133 2/21/2024
4.0.138 140 2/20/2024
4.0.137 384 2/19/2024
4.0.136 118 2/19/2024
4.0.135 117 2/16/2024
4.0.134 123 2/16/2024
4.0.133 120 2/15/2024
4.0.132 130 2/14/2024
4.0.131 120 2/13/2024
4.0.130 148 2/12/2024
4.0.129 123 2/9/2024
4.0.128 160 2/8/2024
4.0.127 129 2/7/2024
4.0.126 137 2/6/2024
4.0.125 103 2/6/2024
4.0.124 116 2/5/2024
4.0.123 471 2/2/2024
4.0.122 125 2/1/2024
4.0.121 120 2/1/2024
4.0.120 130 1/31/2024
4.0.119 207 1/30/2024
4.0.118 130 1/29/2024
4.0.117 146 1/26/2024
4.0.116 119 1/24/2024
4.0.115 114 1/23/2024
4.0.114 120 1/22/2024
4.0.113 313 1/16/2024
4.0.112 158 1/15/2024
4.0.111 133 1/15/2024
4.0.110 135 1/12/2024
4.0.109 114 1/11/2024
4.0.108 129 1/10/2024
4.0.107 304 1/8/2024
4.0.106 182 1/5/2024
4.0.105 314 12/26/2023
4.0.104 138 12/26/2023
4.0.103 171 12/25/2023
4.0.102 141 12/25/2023
4.0.101 223 12/22/2023
4.0.100 164 12/21/2023
4.0.99 187 12/15/2023
4.0.98 141 12/14/2023
4.0.97 126 12/13/2023
4.0.96 149 12/13/2023
4.0.95 310 12/12/2023
4.0.94 144 12/12/2023
4.0.93 146 12/11/2023
4.0.92 142 12/11/2023
4.0.91 207 12/6/2023
4.0.90 158 12/6/2023
4.0.89 149 12/5/2023
4.0.88 206 12/4/2023
4.0.87 212 11/24/2023
4.0.86 167 11/23/2023
4.0.85 150 11/21/2023
4.0.84 164 11/20/2023
4.0.83 153 11/20/2023
4.0.82 190 11/17/2023
4.0.81 493 11/16/2023
4.0.80 155 11/15/2023
4.0.79 163 11/13/2023
4.0.78 175 11/9/2023
4.0.77 189 11/8/2023
4.0.76 142 11/8/2023
4.0.75 150 11/7/2023
4.0.74 168 11/6/2023
4.0.73 164 11/3/2023
4.0.72 197 11/2/2023
4.0.71 152 11/1/2023
4.0.70 143 11/1/2023
4.0.69 185 10/31/2023
4.0.68 174 10/30/2023
4.0.67 177 10/27/2023
4.0.66 175 10/26/2023
4.0.65 186 10/25/2023
4.0.64 181 10/17/2023
4.0.63 140 10/17/2023
4.0.62 200 10/16/2023
4.0.61 205 10/13/2023
4.0.60 212 10/12/2023
4.0.59 167 10/11/2023
4.0.58 198 10/5/2023
4.0.57 169 10/4/2023
4.0.56 165 9/26/2023
4.0.55 167 9/25/2023
4.0.54 181 9/22/2023
4.0.53 181 9/20/2023
4.0.52 176 9/19/2023
4.0.51 182 9/18/2023
4.0.50 160 9/18/2023
4.0.49 222 9/14/2023
4.0.48 188 9/13/2023
4.0.47 166 9/12/2023
4.0.46 244 9/11/2023
4.0.45 153 9/11/2023
4.0.44 150 9/11/2023
4.0.43 269 9/7/2023
4.0.42 159 9/6/2023
4.0.41 213 9/5/2023
4.0.40 169 9/4/2023
4.0.39 164 9/4/2023
4.0.38 197 9/1/2023
4.0.37 212 8/31/2023
4.0.36 198 8/30/2023
4.0.35 220 8/29/2023
4.0.34 155 8/29/2023
4.0.33 239 8/28/2023
4.0.32 218 8/25/2023
4.0.31 209 8/24/2023
4.0.30 193 8/23/2023
4.0.29 203 8/22/2023
4.0.28 206 8/18/2023
4.0.27 204 8/17/2023
4.0.26 189 8/17/2023
4.0.25 176 8/16/2023
4.0.24 260 8/10/2023
4.0.23 224 8/9/2023
4.0.22 212 8/8/2023
4.0.21 194 8/8/2023
4.0.20 306 8/7/2023
4.0.19 200 8/4/2023
4.0.18 261 8/3/2023
4.0.17 225 8/2/2023
4.0.16 229 7/26/2023
4.0.15 215 7/25/2023
4.0.14 237 7/20/2023
4.0.13 220 7/19/2023
4.0.12 212 7/18/2023
4.0.11 163 7/18/2023
4.0.10 219 7/18/2023
4.0.9 174 7/18/2023
4.0.8 281 7/17/2023
4.0.7 180 7/17/2023
4.0.6 550 1/30/2023
4.0.5 408 1/30/2023
4.0.4 414 1/27/2023
4.0.3 512 12/13/2022
4.0.0 328 12/12/2022
3.0.47 1,529 6/10/2022
3.0.45 988 4/20/2022
3.0.44 1,007 1/11/2022
3.0.43 623 1/10/2022
3.0.42 1,096 6/17/2021
3.0.41 753 6/16/2021
3.0.40 718 6/16/2021
3.0.39 509 6/16/2021
3.0.38 988 1/7/2021
3.0.37 824 12/16/2020
3.0.36 760 12/14/2020
3.0.35 2,307 9/13/2020
3.0.34 876 6/19/2020
3.0.33 1,869 5/12/2020
3.0.32 1,390 5/12/2020
3.0.31 886 4/28/2020
3.0.30 839 4/24/2020
3.0.29 821 4/16/2020
3.0.28 894 4/16/2020
3.0.27 568 4/15/2020
3.0.26 856 4/15/2020
3.0.25 916 4/14/2020
3.0.24 598 4/14/2020
3.0.23 942 4/10/2020
3.0.22 883 4/10/2020
3.0.21 918 4/7/2020
3.0.20 2,753 3/26/2020
3.0.19 921 3/26/2020
3.0.18 583 3/25/2020
3.0.17 587 3/25/2020
3.0.16 595 3/25/2020
3.0.15 616 3/25/2020
3.0.13 595 3/25/2020
3.0.12 610 3/25/2020
3.0.11 579 3/25/2020
3.0.10 1,134 3/25/2020
3.0.9 953 3/22/2020
3.0.8 570 3/22/2020
3.0.7 952 3/21/2020
3.0.6 1,594 3/13/2020
3.0.5 613 3/13/2020
3.0.4 1,332 2/28/2020
3.0.3 1,189 2/21/2020
3.0.2 643 2/11/2020
3.0.1 618 2/11/2020
3.0.0 1,789 12/23/2019
2.0.13 634 11/4/2019
2.0.12 702 6/19/2019
2.0.11 689 6/19/2019
2.0.10 980 4/17/2019
2.0.9 1,546 2/21/2019
2.0.8 3,887 8/1/2018
2.0.7 1,229 8/1/2018
2.0.6 1,631 6/26/2018
2.0.5 998 6/14/2018
2.0.4 1,587 6/1/2018
2.0.3 1,545 5/22/2018
2.0.2 2,127 5/11/2018
2.0.1 2,201 2/13/2018
2.0.0 2,098 1/2/2018
1.0.29 3,817 11/16/2017
1.0.28 926 11/16/2017
1.0.27 6,340 10/18/2017
1.0.26 4,536 9/22/2017
1.0.24 1,002 9/22/2017
1.0.23 1,341 9/22/2017
1.0.22 1,009 9/22/2017
1.0.21 1,013 9/22/2017
1.0.19 1,021 9/22/2017
1.0.18 1,017 9/21/2017
1.0.17 2,060 8/4/2017
1.0.16 1,023 7/3/2017
1.0.15 1,046 6/16/2017
1.0.13 1,036 6/16/2017
1.0.12 1,027 6/16/2017
1.0.11 1,048 5/30/2017
1.0.9 1,039 5/25/2017
1.0.8 1,023 5/24/2017
1.0.7 1,048 5/19/2017
1.0.6 1,082 5/17/2017
1.0.4 1,142 4/3/2017
1.0.3 1,147 3/22/2017
1.0.2 1,140 2/2/2017