Data.Modeler 5.0.27

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

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

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.27 127 3/17/2025
5.0.26 101 2/24/2025
5.0.25 130 2/12/2025
5.0.24 163 2/3/2025
5.0.23 141 1/30/2025
5.0.22 108 1/29/2025
5.0.21 79 1/29/2025
5.0.20 106 1/28/2025
5.0.19 100 1/24/2025
5.0.18 108 1/23/2025
5.0.17 87 1/23/2025
5.0.16 128 1/16/2025
5.0.15 106 1/15/2025
5.0.14 85 1/14/2025
5.0.13 94 1/13/2025
5.0.12 96 1/10/2025
5.0.11 104 1/9/2025
5.0.10 82 1/8/2025
5.0.9 165 12/17/2024
5.0.8 93 12/17/2024
5.0.7 141 12/10/2024
5.0.6 104 12/9/2024
5.0.5 170 11/26/2024
5.0.4 132 11/26/2024
5.0.3 90 11/25/2024
5.0.2 124 11/24/2024
5.0.1 106 11/23/2024
5.0.0 102 11/23/2024
4.0.268 117 11/19/2024
4.0.267 105 11/11/2024
4.0.266 95 11/6/2024
4.0.265 94 11/5/2024
4.0.264 95 11/4/2024
4.0.263 103 11/1/2024
4.0.262 95 10/31/2024
4.0.261 98 10/30/2024
4.0.260 96 10/29/2024
4.0.259 92 10/29/2024
4.0.258 103 10/25/2024
4.0.257 95 10/24/2024
4.0.256 96 10/21/2024
4.0.255 107 10/16/2024
4.0.254 88 10/15/2024
4.0.253 97 10/11/2024
4.0.252 95 10/10/2024
4.0.251 101 10/9/2024
4.0.250 104 10/8/2024
4.0.249 97 10/2/2024
4.0.248 95 10/1/2024
4.0.247 101 9/30/2024
4.0.246 102 9/27/2024
4.0.245 98 9/24/2024
4.0.244 111 9/23/2024
4.0.243 97 9/23/2024
4.0.242 137 9/17/2024
4.0.241 124 9/10/2024
4.0.240 110 9/9/2024
4.0.239 108 9/6/2024
4.0.238 113 9/5/2024
4.0.237 118 9/3/2024
4.0.236 118 9/2/2024
4.0.235 117 8/30/2024
4.0.234 114 8/29/2024
4.0.233 115 8/28/2024
4.0.232 118 8/27/2024
4.0.231 121 8/26/2024
4.0.230 136 8/23/2024
4.0.229 130 8/22/2024
4.0.228 132 8/21/2024
4.0.227 133 8/20/2024
4.0.226 133 8/20/2024
4.0.225 154 8/19/2024
4.0.224 144 8/16/2024
4.0.223 126 8/15/2024
4.0.222 144 8/14/2024
4.0.221 107 8/5/2024
4.0.220 106 8/2/2024
4.0.219 116 8/1/2024
4.0.218 97 7/31/2024
4.0.217 116 7/26/2024
4.0.216 92 7/25/2024
4.0.215 70 7/24/2024
4.0.214 125 7/11/2024
4.0.213 108 7/10/2024
4.0.212 100 7/9/2024
4.0.211 100 7/9/2024
4.0.210 103 7/8/2024
4.0.209 122 7/5/2024
4.0.208 113 7/5/2024
4.0.207 111 7/2/2024
4.0.206 105 7/1/2024
4.0.205 123 6/27/2024
4.0.204 109 6/26/2024
4.0.203 123 6/25/2024
4.0.202 113 6/24/2024
4.0.201 1,003 6/19/2024
4.0.200 125 6/18/2024
4.0.199 105 6/17/2024
4.0.198 111 6/14/2024
4.0.197 106 6/13/2024
4.0.196 117 6/12/2024
4.0.195 130 6/3/2024
4.0.194 116 5/31/2024
4.0.193 129 5/30/2024
4.0.192 114 5/29/2024
4.0.191 140 5/27/2024
4.0.190 107 5/27/2024
4.0.189 110 5/23/2024
4.0.188 121 5/22/2024
4.0.187 154 5/21/2024
4.0.186 124 5/20/2024
4.0.185 133 5/17/2024
4.0.184 128 5/16/2024
4.0.183 133 5/15/2024
4.0.182 126 5/8/2024
4.0.181 117 5/7/2024
4.0.180 126 5/6/2024
4.0.179 126 5/3/2024
4.0.178 691 5/2/2024
4.0.177 95 5/1/2024
4.0.176 121 4/30/2024
4.0.175 122 4/29/2024
4.0.174 120 4/29/2024
4.0.173 125 4/25/2024
4.0.172 124 4/24/2024
4.0.171 131 4/16/2024
4.0.170 127 4/15/2024
4.0.169 111 4/12/2024
4.0.168 114 4/12/2024
4.0.167 132 4/11/2024
4.0.166 143 4/10/2024
4.0.165 130 4/9/2024
4.0.164 133 4/8/2024
4.0.163 130 4/1/2024
4.0.162 115 3/29/2024
4.0.161 119 3/28/2024
4.0.160 112 3/26/2024
4.0.159 141 3/23/2024
4.0.158 129 3/22/2024
4.0.157 124 3/21/2024
4.0.156 116 3/18/2024
4.0.155 145 3/15/2024
4.0.154 131 3/14/2024
4.0.153 139 3/13/2024
4.0.152 147 3/11/2024
4.0.151 130 3/8/2024
4.0.150 134 3/7/2024
4.0.149 128 3/6/2024
4.0.148 130 3/5/2024
4.0.147 952 3/4/2024
4.0.146 153 3/1/2024
4.0.145 147 2/29/2024
4.0.144 138 2/28/2024
4.0.143 146 2/27/2024
4.0.142 132 2/26/2024
4.0.141 162 2/23/2024
4.0.140 138 2/22/2024
4.0.139 143 2/21/2024
4.0.138 148 2/20/2024
4.0.137 391 2/19/2024
4.0.136 126 2/19/2024
4.0.135 123 2/16/2024
4.0.134 127 2/16/2024
4.0.133 126 2/15/2024
4.0.132 134 2/14/2024
4.0.131 123 2/13/2024
4.0.130 151 2/12/2024
4.0.129 127 2/9/2024
4.0.128 164 2/8/2024
4.0.127 132 2/7/2024
4.0.126 140 2/6/2024
4.0.125 107 2/6/2024
4.0.124 120 2/5/2024
4.0.123 475 2/2/2024
4.0.122 129 2/1/2024
4.0.121 124 2/1/2024
4.0.120 134 1/31/2024
4.0.119 211 1/30/2024
4.0.118 133 1/29/2024
4.0.117 150 1/26/2024
4.0.116 123 1/24/2024
4.0.115 118 1/23/2024
4.0.114 124 1/22/2024
4.0.113 317 1/16/2024
4.0.112 163 1/15/2024
4.0.111 137 1/15/2024
4.0.110 139 1/12/2024
4.0.109 118 1/11/2024
4.0.108 132 1/10/2024
4.0.107 308 1/8/2024
4.0.106 186 1/5/2024
4.0.105 318 12/26/2023
4.0.104 142 12/26/2023
4.0.103 174 12/25/2023
4.0.102 145 12/25/2023
4.0.101 227 12/22/2023
4.0.100 168 12/21/2023
4.0.99 191 12/15/2023
4.0.98 147 12/14/2023
4.0.97 130 12/13/2023
4.0.96 153 12/13/2023
4.0.95 316 12/12/2023
4.0.94 148 12/12/2023
4.0.93 151 12/11/2023
4.0.92 146 12/11/2023
4.0.91 212 12/6/2023
4.0.90 162 12/6/2023
4.0.89 153 12/5/2023
4.0.88 210 12/4/2023
4.0.87 218 11/24/2023
4.0.86 171 11/23/2023
4.0.85 156 11/21/2023
4.0.84 168 11/20/2023
4.0.83 157 11/20/2023
4.0.82 194 11/17/2023
4.0.81 592 11/16/2023
4.0.80 161 11/15/2023
4.0.79 169 11/13/2023
4.0.78 181 11/9/2023
4.0.77 193 11/8/2023
4.0.76 146 11/8/2023
4.0.75 154 11/7/2023
4.0.74 173 11/6/2023
4.0.73 170 11/3/2023
4.0.72 203 11/2/2023
4.0.71 156 11/1/2023
4.0.70 151 11/1/2023
4.0.69 189 10/31/2023
4.0.68 178 10/30/2023
4.0.67 182 10/27/2023
4.0.66 181 10/26/2023
4.0.65 189 10/25/2023
4.0.64 185 10/17/2023
4.0.63 144 10/17/2023
4.0.62 204 10/16/2023
4.0.61 208 10/13/2023
4.0.60 218 10/12/2023
4.0.59 171 10/11/2023
4.0.58 204 10/5/2023
4.0.57 173 10/4/2023
4.0.56 169 9/26/2023
4.0.55 171 9/25/2023
4.0.54 187 9/22/2023
4.0.53 186 9/20/2023
4.0.52 182 9/19/2023
4.0.51 185 9/18/2023
4.0.50 165 9/18/2023
4.0.49 228 9/14/2023
4.0.48 192 9/13/2023
4.0.47 170 9/12/2023
4.0.46 248 9/11/2023
4.0.45 160 9/11/2023
4.0.44 154 9/11/2023
4.0.43 275 9/7/2023
4.0.42 163 9/6/2023
4.0.41 217 9/5/2023
4.0.40 172 9/4/2023
4.0.39 170 9/4/2023
4.0.38 204 9/1/2023
4.0.37 216 8/31/2023
4.0.36 204 8/30/2023
4.0.35 225 8/29/2023
4.0.34 158 8/29/2023
4.0.33 245 8/28/2023
4.0.32 222 8/25/2023
4.0.31 215 8/24/2023
4.0.30 198 8/23/2023
4.0.29 208 8/22/2023
4.0.28 209 8/18/2023
4.0.27 210 8/17/2023
4.0.26 194 8/17/2023
4.0.25 182 8/16/2023
4.0.24 266 8/10/2023
4.0.23 228 8/9/2023
4.0.22 218 8/8/2023
4.0.21 199 8/8/2023
4.0.20 311 8/7/2023
4.0.19 207 8/4/2023
4.0.18 266 8/3/2023
4.0.17 232 8/2/2023
4.0.16 237 7/26/2023
4.0.15 221 7/25/2023
4.0.14 242 7/20/2023
4.0.13 224 7/19/2023
4.0.12 216 7/18/2023
4.0.11 167 7/18/2023
4.0.10 224 7/18/2023
4.0.9 179 7/18/2023
4.0.8 287 7/17/2023
4.0.7 184 7/17/2023
4.0.6 560 1/30/2023
4.0.5 417 1/30/2023
4.0.4 423 1/27/2023
4.0.3 528 12/13/2022
4.0.0 338 12/12/2022
3.0.47 1,541 6/10/2022
3.0.45 1,003 4/20/2022
3.0.44 1,022 1/11/2022
3.0.43 639 1/10/2022
3.0.42 1,114 6/17/2021
3.0.41 767 6/16/2021
3.0.40 734 6/16/2021
3.0.39 523 6/16/2021
3.0.38 1,010 1/7/2021
3.0.37 841 12/16/2020
3.0.36 776 12/14/2020
3.0.35 2,325 9/13/2020
3.0.34 893 6/19/2020
3.0.33 1,888 5/12/2020
3.0.32 1,408 5/12/2020
3.0.31 904 4/28/2020
3.0.30 857 4/24/2020
3.0.29 842 4/16/2020
3.0.28 913 4/16/2020
3.0.27 586 4/15/2020
3.0.26 876 4/15/2020
3.0.25 937 4/14/2020
3.0.24 619 4/14/2020
3.0.23 963 4/10/2020
3.0.22 904 4/10/2020
3.0.21 945 4/7/2020
3.0.20 2,771 3/26/2020
3.0.19 940 3/26/2020
3.0.18 603 3/25/2020
3.0.17 606 3/25/2020
3.0.16 616 3/25/2020
3.0.15 634 3/25/2020
3.0.13 615 3/25/2020
3.0.12 629 3/25/2020
3.0.11 600 3/25/2020
3.0.10 1,155 3/25/2020
3.0.9 972 3/22/2020
3.0.8 588 3/22/2020
3.0.7 971 3/21/2020
3.0.6 1,612 3/13/2020
3.0.5 631 3/13/2020
3.0.4 1,350 2/28/2020
3.0.3 1,208 2/21/2020
3.0.2 661 2/11/2020
3.0.1 636 2/11/2020
3.0.0 1,807 12/23/2019
2.0.13 653 11/4/2019
2.0.12 725 6/19/2019
2.0.11 710 6/19/2019
2.0.10 1,002 4/17/2019
2.0.9 1,568 2/21/2019
2.0.8 3,942 8/1/2018
2.0.7 1,285 8/1/2018
2.0.6 1,718 6/26/2018
2.0.5 1,086 6/14/2018
2.0.4 1,674 6/1/2018
2.0.3 1,636 5/22/2018
2.0.2 2,224 5/11/2018
2.0.1 2,298 2/13/2018
2.0.0 2,201 1/2/2018
1.0.29 3,882 11/16/2017
1.0.28 991 11/16/2017
1.0.27 6,405 10/18/2017
1.0.26 4,603 9/22/2017
1.0.24 1,067 9/22/2017
1.0.23 1,406 9/22/2017
1.0.22 1,076 9/22/2017
1.0.21 1,080 9/22/2017
1.0.19 1,088 9/22/2017
1.0.18 1,082 9/21/2017
1.0.17 2,127 8/4/2017
1.0.16 1,088 7/3/2017
1.0.15 1,111 6/16/2017
1.0.13 1,101 6/16/2017
1.0.12 1,092 6/16/2017
1.0.11 1,113 5/30/2017
1.0.9 1,103 5/25/2017
1.0.8 1,088 5/24/2017
1.0.7 1,113 5/19/2017
1.0.6 1,149 5/17/2017
1.0.4 1,210 4/3/2017
1.0.3 1,216 3/22/2017
1.0.2 1,206 2/2/2017