Data.Modeler 5.0.26

dotnet add package Data.Modeler --version 5.0.26                
NuGet\Install-Package Data.Modeler -Version 5.0.26                
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.26" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Data.Modeler --version 5.0.26                
#r "nuget: Data.Modeler, 5.0.26"                
#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.26

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

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.26 94 2/24/2025
5.0.25 125 2/12/2025
5.0.24 152 2/3/2025
5.0.23 131 1/30/2025
5.0.22 104 1/29/2025
5.0.21 74 1/29/2025
5.0.20 101 1/28/2025
5.0.19 96 1/24/2025
5.0.18 107 1/23/2025
5.0.17 83 1/23/2025
5.0.16 126 1/16/2025
5.0.15 104 1/15/2025
5.0.14 84 1/14/2025
5.0.13 93 1/13/2025
5.0.12 95 1/10/2025
5.0.11 103 1/9/2025
5.0.10 80 1/8/2025
5.0.9 164 12/17/2024
5.0.8 92 12/17/2024
5.0.7 139 12/10/2024
5.0.6 102 12/9/2024
5.0.5 169 11/26/2024
5.0.4 130 11/26/2024
5.0.3 90 11/25/2024
5.0.2 123 11/24/2024
5.0.1 105 11/23/2024
5.0.0 102 11/23/2024
4.0.268 116 11/19/2024
4.0.267 103 11/11/2024
4.0.266 93 11/6/2024
4.0.265 93 11/5/2024
4.0.264 94 11/4/2024
4.0.263 102 11/1/2024
4.0.262 92 10/31/2024
4.0.261 95 10/30/2024
4.0.260 95 10/29/2024
4.0.259 92 10/29/2024
4.0.258 102 10/25/2024
4.0.257 94 10/24/2024
4.0.256 95 10/21/2024
4.0.255 106 10/16/2024
4.0.254 87 10/15/2024
4.0.253 96 10/11/2024
4.0.252 94 10/10/2024
4.0.251 100 10/9/2024
4.0.250 103 10/8/2024
4.0.249 96 10/2/2024
4.0.248 94 10/1/2024
4.0.247 100 9/30/2024
4.0.246 102 9/27/2024
4.0.245 97 9/24/2024
4.0.244 111 9/23/2024
4.0.243 96 9/23/2024
4.0.242 136 9/17/2024
4.0.241 124 9/10/2024
4.0.240 109 9/9/2024
4.0.239 107 9/6/2024
4.0.238 112 9/5/2024
4.0.237 118 9/3/2024
4.0.236 117 9/2/2024
4.0.235 116 8/30/2024
4.0.234 113 8/29/2024
4.0.233 114 8/28/2024
4.0.232 117 8/27/2024
4.0.231 120 8/26/2024
4.0.230 135 8/23/2024
4.0.229 129 8/22/2024
4.0.228 132 8/21/2024
4.0.227 132 8/20/2024
4.0.226 132 8/20/2024
4.0.225 153 8/19/2024
4.0.224 143 8/16/2024
4.0.223 126 8/15/2024
4.0.222 143 8/14/2024
4.0.221 106 8/5/2024
4.0.220 105 8/2/2024
4.0.219 115 8/1/2024
4.0.218 94 7/31/2024
4.0.217 115 7/26/2024
4.0.216 91 7/25/2024
4.0.215 69 7/24/2024
4.0.214 124 7/11/2024
4.0.213 107 7/10/2024
4.0.212 100 7/9/2024
4.0.211 99 7/9/2024
4.0.210 103 7/8/2024
4.0.209 121 7/5/2024
4.0.208 112 7/5/2024
4.0.207 110 7/2/2024
4.0.206 104 7/1/2024
4.0.205 122 6/27/2024
4.0.204 108 6/26/2024
4.0.203 122 6/25/2024
4.0.202 112 6/24/2024
4.0.201 1,002 6/19/2024
4.0.200 124 6/18/2024
4.0.199 104 6/17/2024
4.0.198 110 6/14/2024
4.0.197 105 6/13/2024
4.0.196 116 6/12/2024
4.0.195 129 6/3/2024
4.0.194 116 5/31/2024
4.0.193 128 5/30/2024
4.0.192 113 5/29/2024
4.0.191 139 5/27/2024
4.0.190 106 5/27/2024
4.0.189 109 5/23/2024
4.0.188 120 5/22/2024
4.0.187 153 5/21/2024
4.0.186 123 5/20/2024
4.0.185 132 5/17/2024
4.0.184 127 5/16/2024
4.0.183 132 5/15/2024
4.0.182 126 5/8/2024
4.0.181 116 5/7/2024
4.0.180 126 5/6/2024
4.0.179 123 5/3/2024
4.0.178 687 5/2/2024
4.0.177 92 5/1/2024
4.0.176 120 4/30/2024
4.0.175 121 4/29/2024
4.0.174 119 4/29/2024
4.0.173 124 4/25/2024
4.0.172 123 4/24/2024
4.0.171 130 4/16/2024
4.0.170 126 4/15/2024
4.0.169 111 4/12/2024
4.0.168 113 4/12/2024
4.0.167 131 4/11/2024
4.0.166 142 4/10/2024
4.0.165 129 4/9/2024
4.0.164 132 4/8/2024
4.0.163 129 4/1/2024
4.0.162 114 3/29/2024
4.0.161 118 3/28/2024
4.0.160 111 3/26/2024
4.0.159 140 3/23/2024
4.0.158 128 3/22/2024
4.0.157 123 3/21/2024
4.0.156 115 3/18/2024
4.0.155 144 3/15/2024
4.0.154 130 3/14/2024
4.0.153 139 3/13/2024
4.0.152 147 3/11/2024
4.0.151 129 3/8/2024
4.0.150 133 3/7/2024
4.0.149 128 3/6/2024
4.0.148 129 3/5/2024
4.0.147 951 3/4/2024
4.0.146 150 3/1/2024
4.0.145 145 2/29/2024
4.0.144 136 2/28/2024
4.0.143 144 2/27/2024
4.0.142 131 2/26/2024
4.0.141 160 2/23/2024
4.0.140 134 2/22/2024
4.0.139 137 2/21/2024
4.0.138 146 2/20/2024
4.0.137 390 2/19/2024
4.0.136 124 2/19/2024
4.0.135 121 2/16/2024
4.0.134 125 2/16/2024
4.0.133 124 2/15/2024
4.0.132 132 2/14/2024
4.0.131 122 2/13/2024
4.0.130 150 2/12/2024
4.0.129 125 2/9/2024
4.0.128 162 2/8/2024
4.0.127 130 2/7/2024
4.0.126 139 2/6/2024
4.0.125 105 2/6/2024
4.0.124 118 2/5/2024
4.0.123 473 2/2/2024
4.0.122 127 2/1/2024
4.0.121 122 2/1/2024
4.0.120 132 1/31/2024
4.0.119 209 1/30/2024
4.0.118 132 1/29/2024
4.0.117 148 1/26/2024
4.0.116 121 1/24/2024
4.0.115 116 1/23/2024
4.0.114 122 1/22/2024
4.0.113 315 1/16/2024
4.0.112 161 1/15/2024
4.0.111 135 1/15/2024
4.0.110 137 1/12/2024
4.0.109 116 1/11/2024
4.0.108 131 1/10/2024
4.0.107 306 1/8/2024
4.0.106 184 1/5/2024
4.0.105 316 12/26/2023
4.0.104 140 12/26/2023
4.0.103 173 12/25/2023
4.0.102 143 12/25/2023
4.0.101 225 12/22/2023
4.0.100 166 12/21/2023
4.0.99 189 12/15/2023
4.0.98 145 12/14/2023
4.0.97 128 12/13/2023
4.0.96 151 12/13/2023
4.0.95 314 12/12/2023
4.0.94 146 12/12/2023
4.0.93 150 12/11/2023
4.0.92 144 12/11/2023
4.0.91 210 12/6/2023
4.0.90 160 12/6/2023
4.0.89 151 12/5/2023
4.0.88 208 12/4/2023
4.0.87 216 11/24/2023
4.0.86 169 11/23/2023
4.0.85 154 11/21/2023
4.0.84 166 11/20/2023
4.0.83 155 11/20/2023
4.0.82 192 11/17/2023
4.0.81 567 11/16/2023
4.0.80 159 11/15/2023
4.0.79 167 11/13/2023
4.0.78 179 11/9/2023
4.0.77 191 11/8/2023
4.0.76 144 11/8/2023
4.0.75 152 11/7/2023
4.0.74 171 11/6/2023
4.0.73 168 11/3/2023
4.0.72 201 11/2/2023
4.0.71 154 11/1/2023
4.0.70 149 11/1/2023
4.0.69 187 10/31/2023
4.0.68 176 10/30/2023
4.0.67 180 10/27/2023
4.0.66 179 10/26/2023
4.0.65 188 10/25/2023
4.0.64 183 10/17/2023
4.0.63 142 10/17/2023
4.0.62 202 10/16/2023
4.0.61 207 10/13/2023
4.0.60 216 10/12/2023
4.0.59 169 10/11/2023
4.0.58 202 10/5/2023
4.0.57 171 10/4/2023
4.0.56 167 9/26/2023
4.0.55 169 9/25/2023
4.0.54 185 9/22/2023
4.0.53 185 9/20/2023
4.0.52 180 9/19/2023
4.0.51 184 9/18/2023
4.0.50 164 9/18/2023
4.0.49 226 9/14/2023
4.0.48 190 9/13/2023
4.0.47 168 9/12/2023
4.0.46 246 9/11/2023
4.0.45 158 9/11/2023
4.0.44 152 9/11/2023
4.0.43 273 9/7/2023
4.0.42 161 9/6/2023
4.0.41 215 9/5/2023
4.0.40 171 9/4/2023
4.0.39 168 9/4/2023
4.0.38 202 9/1/2023
4.0.37 214 8/31/2023
4.0.36 202 8/30/2023
4.0.35 224 8/29/2023
4.0.34 157 8/29/2023
4.0.33 243 8/28/2023
4.0.32 220 8/25/2023
4.0.31 213 8/24/2023
4.0.30 196 8/23/2023
4.0.29 207 8/22/2023
4.0.28 208 8/18/2023
4.0.27 208 8/17/2023
4.0.26 193 8/17/2023
4.0.25 180 8/16/2023
4.0.24 264 8/10/2023
4.0.23 226 8/9/2023
4.0.22 216 8/8/2023
4.0.21 197 8/8/2023
4.0.20 309 8/7/2023
4.0.19 205 8/4/2023
4.0.18 264 8/3/2023
4.0.17 230 8/2/2023
4.0.16 235 7/26/2023
4.0.15 219 7/25/2023
4.0.14 241 7/20/2023
4.0.13 222 7/19/2023
4.0.12 214 7/18/2023
4.0.11 165 7/18/2023
4.0.10 223 7/18/2023
4.0.9 176 7/18/2023
4.0.8 285 7/17/2023
4.0.7 182 7/17/2023
4.0.6 558 1/30/2023
4.0.5 414 1/30/2023
4.0.4 420 1/27/2023
4.0.3 524 12/13/2022
4.0.0 334 12/12/2022
3.0.47 1,535 6/10/2022
3.0.45 994 4/20/2022
3.0.44 1,015 1/11/2022
3.0.43 630 1/10/2022
3.0.42 1,106 6/17/2021
3.0.41 760 6/16/2021
3.0.40 726 6/16/2021
3.0.39 515 6/16/2021
3.0.38 1,004 1/7/2021
3.0.37 835 12/16/2020
3.0.36 770 12/14/2020
3.0.35 2,320 9/13/2020
3.0.34 888 6/19/2020
3.0.33 1,881 5/12/2020
3.0.32 1,402 5/12/2020
3.0.31 898 4/28/2020
3.0.30 851 4/24/2020
3.0.29 835 4/16/2020
3.0.28 906 4/16/2020
3.0.27 580 4/15/2020
3.0.26 870 4/15/2020
3.0.25 930 4/14/2020
3.0.24 612 4/14/2020
3.0.23 957 4/10/2020
3.0.22 897 4/10/2020
3.0.21 938 4/7/2020
3.0.20 2,765 3/26/2020
3.0.19 933 3/26/2020
3.0.18 595 3/25/2020
3.0.17 599 3/25/2020
3.0.16 609 3/25/2020
3.0.15 628 3/25/2020
3.0.13 608 3/25/2020
3.0.12 622 3/25/2020
3.0.11 593 3/25/2020
3.0.10 1,148 3/25/2020
3.0.9 965 3/22/2020
3.0.8 582 3/22/2020
3.0.7 964 3/21/2020
3.0.6 1,606 3/13/2020
3.0.5 625 3/13/2020
3.0.4 1,344 2/28/2020
3.0.3 1,201 2/21/2020
3.0.2 655 2/11/2020
3.0.1 630 2/11/2020
3.0.0 1,801 12/23/2019
2.0.13 646 11/4/2019
2.0.12 716 6/19/2019
2.0.11 701 6/19/2019
2.0.10 993 4/17/2019
2.0.9 1,560 2/21/2019
2.0.8 3,919 8/1/2018
2.0.7 1,262 8/1/2018
2.0.6 1,682 6/26/2018
2.0.5 1,050 6/14/2018
2.0.4 1,638 6/1/2018
2.0.3 1,600 5/22/2018
2.0.2 2,188 5/11/2018
2.0.1 2,262 2/13/2018
2.0.0 2,163 1/2/2018
1.0.29 3,859 11/16/2017
1.0.28 968 11/16/2017
1.0.27 6,382 10/18/2017
1.0.26 4,578 9/22/2017
1.0.24 1,044 9/22/2017
1.0.23 1,383 9/22/2017
1.0.22 1,053 9/22/2017
1.0.21 1,055 9/22/2017
1.0.19 1,063 9/22/2017
1.0.18 1,059 9/21/2017
1.0.17 2,102 8/4/2017
1.0.16 1,065 7/3/2017
1.0.15 1,088 6/16/2017
1.0.13 1,078 6/16/2017
1.0.12 1,069 6/16/2017
1.0.11 1,090 5/30/2017
1.0.9 1,081 5/25/2017
1.0.8 1,065 5/24/2017
1.0.7 1,090 5/19/2017
1.0.6 1,124 5/17/2017
1.0.4 1,184 4/3/2017
1.0.3 1,190 3/22/2017
1.0.2 1,182 2/2/2017