Data.Modeler 5.0.7

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

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

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.19 3 1/24/2025
5.0.18 37 1/23/2025
5.0.17 33 1/23/2025
5.0.16 110 1/16/2025
5.0.15 96 1/15/2025
5.0.14 54 1/14/2025
5.0.13 73 1/13/2025
5.0.12 74 1/10/2025
5.0.11 66 1/9/2025
5.0.10 51 1/8/2025
5.0.9 159 12/17/2024
5.0.8 86 12/17/2024
5.0.7 134 12/10/2024
5.0.6 97 12/9/2024
5.0.5 165 11/26/2024
5.0.4 127 11/26/2024
5.0.3 87 11/25/2024
5.0.2 119 11/24/2024
5.0.1 101 11/23/2024
5.0.0 98 11/23/2024
4.0.268 112 11/19/2024
4.0.267 101 11/11/2024
4.0.266 92 11/6/2024
4.0.265 92 11/5/2024
4.0.264 91 11/4/2024
4.0.263 101 11/1/2024
4.0.262 89 10/31/2024
4.0.261 94 10/30/2024
4.0.260 94 10/29/2024
4.0.259 91 10/29/2024
4.0.258 101 10/25/2024
4.0.257 93 10/24/2024
4.0.256 94 10/21/2024
4.0.255 105 10/16/2024
4.0.254 86 10/15/2024
4.0.253 95 10/11/2024
4.0.252 93 10/10/2024
4.0.251 99 10/9/2024
4.0.250 102 10/8/2024
4.0.249 95 10/2/2024
4.0.248 93 10/1/2024
4.0.247 99 9/30/2024
4.0.246 101 9/27/2024
4.0.245 95 9/24/2024
4.0.244 108 9/23/2024
4.0.243 95 9/23/2024
4.0.242 135 9/17/2024
4.0.241 123 9/10/2024
4.0.240 106 9/9/2024
4.0.239 106 9/6/2024
4.0.238 111 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 113 8/28/2024
4.0.232 116 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 104 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 123 7/11/2024
4.0.213 106 7/10/2024
4.0.212 99 7/9/2024
4.0.211 98 7/9/2024
4.0.210 100 7/8/2024
4.0.209 119 7/5/2024
4.0.208 111 7/5/2024
4.0.207 109 7/2/2024
4.0.206 103 7/1/2024
4.0.205 121 6/27/2024
4.0.204 107 6/26/2024
4.0.203 121 6/25/2024
4.0.202 111 6/24/2024
4.0.201 1,001 6/19/2024
4.0.200 123 6/18/2024
4.0.199 103 6/17/2024
4.0.198 109 6/14/2024
4.0.197 103 6/13/2024
4.0.196 115 6/12/2024
4.0.195 128 6/3/2024
4.0.194 115 5/31/2024
4.0.193 127 5/30/2024
4.0.192 112 5/29/2024
4.0.191 138 5/27/2024
4.0.190 105 5/27/2024
4.0.189 108 5/23/2024
4.0.188 119 5/22/2024
4.0.187 152 5/21/2024
4.0.186 122 5/20/2024
4.0.185 128 5/17/2024
4.0.184 126 5/16/2024
4.0.183 131 5/15/2024
4.0.182 125 5/8/2024
4.0.181 109 5/7/2024
4.0.180 125 5/6/2024
4.0.179 122 5/3/2024
4.0.178 686 5/2/2024
4.0.177 89 5/1/2024
4.0.176 119 4/30/2024
4.0.175 120 4/29/2024
4.0.174 118 4/29/2024
4.0.173 123 4/25/2024
4.0.172 122 4/24/2024
4.0.171 129 4/16/2024
4.0.170 125 4/15/2024
4.0.169 108 4/12/2024
4.0.168 112 4/12/2024
4.0.167 128 4/11/2024
4.0.166 139 4/10/2024
4.0.165 126 4/9/2024
4.0.164 130 4/8/2024
4.0.163 128 4/1/2024
4.0.162 113 3/29/2024
4.0.161 117 3/28/2024
4.0.160 110 3/26/2024
4.0.159 139 3/23/2024
4.0.158 127 3/22/2024
4.0.157 122 3/21/2024
4.0.156 114 3/18/2024
4.0.155 143 3/15/2024
4.0.154 129 3/14/2024
4.0.153 138 3/13/2024
4.0.152 146 3/11/2024
4.0.151 128 3/8/2024
4.0.150 132 3/7/2024
4.0.149 127 3/6/2024
4.0.148 128 3/5/2024
4.0.147 950 3/4/2024
4.0.146 149 3/1/2024
4.0.145 144 2/29/2024
4.0.144 135 2/28/2024
4.0.143 143 2/27/2024
4.0.142 130 2/26/2024
4.0.141 158 2/23/2024
4.0.140 133 2/22/2024
4.0.139 136 2/21/2024
4.0.138 141 2/20/2024
4.0.137 385 2/19/2024
4.0.136 119 2/19/2024
4.0.135 120 2/16/2024
4.0.134 124 2/16/2024
4.0.133 121 2/15/2024
4.0.132 131 2/14/2024
4.0.131 121 2/13/2024
4.0.130 149 2/12/2024
4.0.129 124 2/9/2024
4.0.128 161 2/8/2024
4.0.127 129 2/7/2024
4.0.126 138 2/6/2024
4.0.125 104 2/6/2024
4.0.124 117 2/5/2024
4.0.123 472 2/2/2024
4.0.122 126 2/1/2024
4.0.121 121 2/1/2024
4.0.120 131 1/31/2024
4.0.119 208 1/30/2024
4.0.118 131 1/29/2024
4.0.117 147 1/26/2024
4.0.116 120 1/24/2024
4.0.115 115 1/23/2024
4.0.114 121 1/22/2024
4.0.113 314 1/16/2024
4.0.112 159 1/15/2024
4.0.111 134 1/15/2024
4.0.110 136 1/12/2024
4.0.109 115 1/11/2024
4.0.108 130 1/10/2024
4.0.107 305 1/8/2024
4.0.106 183 1/5/2024
4.0.105 315 12/26/2023
4.0.104 139 12/26/2023
4.0.103 172 12/25/2023
4.0.102 142 12/25/2023
4.0.101 224 12/22/2023
4.0.100 165 12/21/2023
4.0.99 188 12/15/2023
4.0.98 144 12/14/2023
4.0.97 127 12/13/2023
4.0.96 150 12/13/2023
4.0.95 313 12/12/2023
4.0.94 145 12/12/2023
4.0.93 147 12/11/2023
4.0.92 143 12/11/2023
4.0.91 208 12/6/2023
4.0.90 159 12/6/2023
4.0.89 150 12/5/2023
4.0.88 207 12/4/2023
4.0.87 213 11/24/2023
4.0.86 168 11/23/2023
4.0.85 151 11/21/2023
4.0.84 165 11/20/2023
4.0.83 154 11/20/2023
4.0.82 191 11/17/2023
4.0.81 520 11/16/2023
4.0.80 158 11/15/2023
4.0.79 166 11/13/2023
4.0.78 178 11/9/2023
4.0.77 190 11/8/2023
4.0.76 143 11/8/2023
4.0.75 151 11/7/2023
4.0.74 169 11/6/2023
4.0.73 167 11/3/2023
4.0.72 200 11/2/2023
4.0.71 153 11/1/2023
4.0.70 144 11/1/2023
4.0.69 186 10/31/2023
4.0.68 175 10/30/2023
4.0.67 178 10/27/2023
4.0.66 178 10/26/2023
4.0.65 187 10/25/2023
4.0.64 182 10/17/2023
4.0.63 141 10/17/2023
4.0.62 201 10/16/2023
4.0.61 206 10/13/2023
4.0.60 215 10/12/2023
4.0.59 168 10/11/2023
4.0.58 201 10/5/2023
4.0.57 170 10/4/2023
4.0.56 166 9/26/2023
4.0.55 168 9/25/2023
4.0.54 184 9/22/2023
4.0.53 184 9/20/2023
4.0.52 179 9/19/2023
4.0.51 183 9/18/2023
4.0.50 161 9/18/2023
4.0.49 225 9/14/2023
4.0.48 189 9/13/2023
4.0.47 167 9/12/2023
4.0.46 245 9/11/2023
4.0.45 156 9/11/2023
4.0.44 151 9/11/2023
4.0.43 272 9/7/2023
4.0.42 160 9/6/2023
4.0.41 214 9/5/2023
4.0.40 170 9/4/2023
4.0.39 167 9/4/2023
4.0.38 200 9/1/2023
4.0.37 213 8/31/2023
4.0.36 201 8/30/2023
4.0.35 223 8/29/2023
4.0.34 156 8/29/2023
4.0.33 242 8/28/2023
4.0.32 219 8/25/2023
4.0.31 212 8/24/2023
4.0.30 194 8/23/2023
4.0.29 206 8/22/2023
4.0.28 207 8/18/2023
4.0.27 207 8/17/2023
4.0.26 192 8/17/2023
4.0.25 179 8/16/2023
4.0.24 263 8/10/2023
4.0.23 225 8/9/2023
4.0.22 214 8/8/2023
4.0.21 196 8/8/2023
4.0.20 308 8/7/2023
4.0.19 204 8/4/2023
4.0.18 263 8/3/2023
4.0.17 229 8/2/2023
4.0.16 234 7/26/2023
4.0.15 218 7/25/2023
4.0.14 240 7/20/2023
4.0.13 221 7/19/2023
4.0.12 213 7/18/2023
4.0.11 164 7/18/2023
4.0.10 222 7/18/2023
4.0.9 175 7/18/2023
4.0.8 284 7/17/2023
4.0.7 181 7/17/2023
4.0.6 552 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,009 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 720 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,309 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 823 4/16/2020
3.0.28 894 4/16/2020
3.0.27 568 4/15/2020
3.0.26 858 4/15/2020
3.0.25 916 4/14/2020
3.0.24 600 4/14/2020
3.0.23 945 4/10/2020
3.0.22 883 4/10/2020
3.0.21 920 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 597 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 581 3/25/2020
3.0.10 1,136 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,547 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