Data.Modeler 4.0.244

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

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

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 net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  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. 
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
4.0.267 69 11/11/2024
4.0.266 65 11/6/2024
4.0.265 65 11/5/2024
4.0.264 65 11/4/2024
4.0.263 74 11/1/2024
4.0.262 66 10/31/2024
4.0.261 68 10/30/2024
4.0.260 71 10/29/2024
4.0.259 67 10/29/2024
4.0.258 78 10/25/2024
4.0.257 70 10/24/2024
4.0.256 71 10/21/2024
4.0.255 83 10/16/2024
4.0.254 66 10/15/2024
4.0.253 78 10/11/2024
4.0.252 76 10/10/2024
4.0.251 82 10/9/2024
4.0.250 85 10/8/2024
4.0.249 78 10/2/2024
4.0.248 74 10/1/2024
4.0.247 84 9/30/2024
4.0.246 85 9/27/2024
4.0.245 83 9/24/2024
4.0.244 93 9/23/2024
4.0.243 81 9/23/2024
4.0.242 120 9/17/2024
4.0.241 111 9/10/2024
4.0.240 94 9/9/2024
4.0.239 92 9/6/2024
4.0.238 97 9/5/2024
4.0.237 102 9/3/2024
4.0.236 104 9/2/2024
4.0.235 99 8/30/2024
4.0.234 101 8/29/2024
4.0.233 102 8/28/2024
4.0.232 101 8/27/2024
4.0.231 110 8/26/2024
4.0.230 123 8/23/2024
4.0.229 116 8/22/2024
4.0.228 120 8/21/2024
4.0.227 119 8/20/2024
4.0.226 118 8/20/2024
4.0.225 139 8/19/2024
4.0.224 131 8/16/2024
4.0.223 113 8/15/2024
4.0.222 127 8/14/2024
4.0.221 94 8/5/2024
4.0.220 92 8/2/2024
4.0.219 103 8/1/2024
4.0.218 82 7/31/2024
4.0.217 100 7/26/2024
4.0.216 79 7/25/2024
4.0.215 59 7/24/2024
4.0.214 111 7/11/2024
4.0.213 94 7/10/2024
4.0.212 87 7/9/2024
4.0.211 86 7/9/2024
4.0.210 90 7/8/2024
4.0.209 105 7/5/2024
4.0.208 99 7/5/2024
4.0.207 97 7/2/2024
4.0.206 91 7/1/2024
4.0.205 109 6/27/2024
4.0.204 94 6/26/2024
4.0.203 108 6/25/2024
4.0.202 99 6/24/2024
4.0.201 936 6/19/2024
4.0.200 111 6/18/2024
4.0.199 88 6/17/2024
4.0.198 95 6/14/2024
4.0.197 93 6/13/2024
4.0.196 101 6/12/2024
4.0.195 116 6/3/2024
4.0.194 103 5/31/2024
4.0.193 117 5/30/2024
4.0.192 100 5/29/2024
4.0.191 124 5/27/2024
4.0.190 91 5/27/2024
4.0.189 96 5/23/2024
4.0.188 106 5/22/2024
4.0.187 136 5/21/2024
4.0.186 110 5/20/2024
4.0.185 116 5/17/2024
4.0.184 113 5/16/2024
4.0.183 119 5/15/2024
4.0.182 114 5/8/2024
4.0.181 95 5/7/2024
4.0.180 115 5/6/2024
4.0.179 112 5/3/2024
4.0.178 676 5/2/2024
4.0.177 81 5/1/2024
4.0.176 107 4/30/2024
4.0.175 108 4/29/2024
4.0.174 108 4/29/2024
4.0.173 113 4/25/2024
4.0.172 110 4/24/2024
4.0.171 118 4/16/2024
4.0.170 115 4/15/2024
4.0.169 100 4/12/2024
4.0.168 102 4/12/2024
4.0.167 118 4/11/2024
4.0.166 128 4/10/2024
4.0.165 116 4/9/2024
4.0.164 117 4/8/2024
4.0.163 116 4/1/2024
4.0.162 104 3/29/2024
4.0.161 103 3/28/2024
4.0.160 97 3/26/2024
4.0.159 127 3/23/2024
4.0.158 115 3/22/2024
4.0.157 110 3/21/2024
4.0.156 104 3/18/2024
4.0.155 130 3/15/2024
4.0.154 117 3/14/2024
4.0.153 127 3/13/2024
4.0.152 135 3/11/2024
4.0.151 118 3/8/2024
4.0.150 124 3/7/2024
4.0.149 119 3/6/2024
4.0.148 116 3/5/2024
4.0.147 940 3/4/2024
4.0.146 139 3/1/2024
4.0.145 132 2/29/2024
4.0.144 125 2/28/2024
4.0.143 132 2/27/2024
4.0.142 120 2/26/2024
4.0.141 149 2/23/2024
4.0.140 124 2/22/2024
4.0.139 126 2/21/2024
4.0.138 132 2/20/2024
4.0.137 373 2/19/2024
4.0.136 109 2/19/2024
4.0.135 106 2/16/2024
4.0.134 110 2/16/2024
4.0.133 107 2/15/2024
4.0.132 117 2/14/2024
4.0.131 107 2/13/2024
4.0.130 140 2/12/2024
4.0.129 110 2/9/2024
4.0.128 149 2/8/2024
4.0.127 122 2/7/2024
4.0.126 128 2/6/2024
4.0.125 96 2/6/2024
4.0.124 110 2/5/2024
4.0.123 464 2/2/2024
4.0.122 116 2/1/2024
4.0.121 113 2/1/2024
4.0.120 123 1/31/2024
4.0.119 200 1/30/2024
4.0.118 123 1/29/2024
4.0.117 139 1/26/2024
4.0.116 110 1/24/2024
4.0.115 107 1/23/2024
4.0.114 113 1/22/2024
4.0.113 306 1/16/2024
4.0.112 150 1/15/2024
4.0.111 121 1/15/2024
4.0.110 128 1/12/2024
4.0.109 108 1/11/2024
4.0.108 123 1/10/2024
4.0.107 296 1/8/2024
4.0.106 177 1/5/2024
4.0.105 306 12/26/2023
4.0.104 132 12/26/2023
4.0.103 165 12/25/2023
4.0.102 136 12/25/2023
4.0.101 217 12/22/2023
4.0.100 156 12/21/2023
4.0.99 181 12/15/2023
4.0.98 135 12/14/2023
4.0.97 121 12/13/2023
4.0.96 138 12/13/2023
4.0.95 304 12/12/2023
4.0.94 136 12/12/2023
4.0.93 140 12/11/2023
4.0.92 134 12/11/2023
4.0.91 201 12/6/2023
4.0.90 150 12/6/2023
4.0.89 141 12/5/2023
4.0.88 197 12/4/2023
4.0.87 206 11/24/2023
4.0.86 155 11/23/2023
4.0.85 144 11/21/2023
4.0.84 156 11/20/2023
4.0.83 145 11/20/2023
4.0.82 182 11/17/2023
4.0.81 421 11/16/2023
4.0.80 147 11/15/2023
4.0.79 157 11/13/2023
4.0.78 169 11/9/2023
4.0.77 181 11/8/2023
4.0.76 134 11/8/2023
4.0.75 144 11/7/2023
4.0.74 160 11/6/2023
4.0.73 158 11/3/2023
4.0.72 191 11/2/2023
4.0.71 143 11/1/2023
4.0.70 129 11/1/2023
4.0.69 178 10/31/2023
4.0.68 166 10/30/2023
4.0.67 169 10/27/2023
4.0.66 168 10/26/2023
4.0.65 178 10/25/2023
4.0.64 172 10/17/2023
4.0.63 131 10/17/2023
4.0.62 192 10/16/2023
4.0.61 195 10/13/2023
4.0.60 205 10/12/2023
4.0.59 160 10/11/2023
4.0.58 191 10/5/2023
4.0.57 160 10/4/2023
4.0.56 157 9/26/2023
4.0.55 157 9/25/2023
4.0.54 175 9/22/2023
4.0.53 175 9/20/2023
4.0.52 170 9/19/2023
4.0.51 171 9/18/2023
4.0.50 154 9/18/2023
4.0.49 217 9/14/2023
4.0.48 181 9/13/2023
4.0.47 156 9/12/2023
4.0.46 236 9/11/2023
4.0.45 146 9/11/2023
4.0.44 142 9/11/2023
4.0.43 263 9/7/2023
4.0.42 151 9/6/2023
4.0.41 205 9/5/2023
4.0.40 161 9/4/2023
4.0.39 157 9/4/2023
4.0.38 191 9/1/2023
4.0.37 204 8/31/2023
4.0.36 193 8/30/2023
4.0.35 214 8/29/2023
4.0.34 147 8/29/2023
4.0.33 233 8/28/2023
4.0.32 210 8/25/2023
4.0.31 203 8/24/2023
4.0.30 187 8/23/2023
4.0.29 197 8/22/2023
4.0.28 198 8/18/2023
4.0.27 197 8/17/2023
4.0.26 183 8/17/2023
4.0.25 170 8/16/2023
4.0.24 254 8/10/2023
4.0.23 215 8/9/2023
4.0.22 204 8/8/2023
4.0.21 186 8/8/2023
4.0.20 300 8/7/2023
4.0.19 194 8/4/2023
4.0.18 253 8/3/2023
4.0.17 218 8/2/2023
4.0.16 222 7/26/2023
4.0.15 209 7/25/2023
4.0.14 231 7/20/2023
4.0.13 211 7/19/2023
4.0.12 202 7/18/2023
4.0.11 155 7/18/2023
4.0.10 213 7/18/2023
4.0.9 166 7/18/2023
4.0.8 274 7/17/2023
4.0.7 171 7/17/2023
4.0.6 543 1/30/2023
4.0.5 398 1/30/2023
4.0.4 400 1/27/2023
4.0.3 503 12/13/2022
4.0.0 317 12/12/2022
3.0.47 1,518 6/10/2022
3.0.45 977 4/20/2022
3.0.44 998 1/11/2022
3.0.43 614 1/10/2022
3.0.42 1,085 6/17/2021
3.0.41 742 6/16/2021
3.0.40 709 6/16/2021
3.0.39 498 6/16/2021
3.0.38 975 1/7/2021
3.0.37 813 12/16/2020
3.0.36 751 12/14/2020
3.0.35 2,298 9/13/2020
3.0.34 865 6/19/2020
3.0.33 1,857 5/12/2020
3.0.32 1,378 5/12/2020
3.0.31 874 4/28/2020
3.0.30 827 4/24/2020
3.0.29 812 4/16/2020
3.0.28 883 4/16/2020
3.0.27 557 4/15/2020
3.0.26 846 4/15/2020
3.0.25 905 4/14/2020
3.0.24 587 4/14/2020
3.0.23 932 4/10/2020
3.0.22 873 4/10/2020
3.0.21 909 4/7/2020
3.0.20 2,742 3/26/2020
3.0.19 909 3/26/2020
3.0.18 574 3/25/2020
3.0.17 576 3/25/2020
3.0.16 586 3/25/2020
3.0.15 605 3/25/2020
3.0.13 586 3/25/2020
3.0.12 601 3/25/2020
3.0.11 570 3/25/2020
3.0.10 1,124 3/25/2020
3.0.9 943 3/22/2020
3.0.8 560 3/22/2020
3.0.7 943 3/21/2020
3.0.6 1,585 3/13/2020
3.0.5 603 3/13/2020
3.0.4 1,321 2/28/2020
3.0.3 1,180 2/21/2020
3.0.2 634 2/11/2020
3.0.1 607 2/11/2020
3.0.0 1,781 12/23/2019
2.0.13 625 11/4/2019
2.0.12 692 6/19/2019
2.0.11 679 6/19/2019
2.0.10 971 4/17/2019
2.0.9 1,537 2/21/2019
2.0.8 3,874 8/1/2018
2.0.7 1,216 8/1/2018
2.0.6 1,618 6/26/2018
2.0.5 985 6/14/2018
2.0.4 1,574 6/1/2018
2.0.3 1,529 5/22/2018
2.0.2 2,114 5/11/2018
2.0.1 2,188 2/13/2018
2.0.0 2,085 1/2/2018
1.0.29 3,805 11/16/2017
1.0.28 911 11/16/2017
1.0.27 6,326 10/18/2017
1.0.26 4,523 9/22/2017
1.0.24 989 9/22/2017
1.0.23 1,327 9/22/2017
1.0.22 997 9/22/2017
1.0.21 1,000 9/22/2017
1.0.19 1,008 9/22/2017
1.0.18 1,000 9/21/2017
1.0.17 2,047 8/4/2017
1.0.16 1,011 7/3/2017
1.0.15 1,030 6/16/2017
1.0.13 1,021 6/16/2017
1.0.12 1,013 6/16/2017
1.0.11 1,034 5/30/2017
1.0.9 1,026 5/25/2017
1.0.8 1,010 5/24/2017
1.0.7 1,035 5/19/2017
1.0.6 1,069 5/17/2017
1.0.4 1,129 4/3/2017
1.0.3 1,133 3/22/2017
1.0.2 1,128 2/2/2017