Data.Modeler 4.0.217

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

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

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.239 27 9/6/2024
4.0.238 31 9/5/2024
4.0.237 39 9/3/2024
4.0.236 70 9/2/2024
4.0.235 73 8/30/2024
4.0.234 73 8/29/2024
4.0.233 73 8/28/2024
4.0.232 76 8/27/2024
4.0.231 69 8/26/2024
4.0.230 74 8/23/2024
4.0.229 75 8/22/2024
4.0.228 73 8/21/2024
4.0.227 69 8/20/2024
4.0.226 72 8/20/2024
4.0.225 84 8/19/2024
4.0.224 87 8/16/2024
4.0.223 69 8/15/2024
4.0.222 89 8/14/2024
4.0.221 66 8/5/2024
4.0.220 72 8/2/2024
4.0.219 79 8/1/2024
4.0.218 61 7/31/2024
4.0.217 57 7/26/2024
4.0.216 52 7/25/2024
4.0.215 38 7/24/2024
4.0.214 90 7/11/2024
4.0.213 69 7/10/2024
4.0.212 67 7/9/2024
4.0.211 67 7/9/2024
4.0.210 68 7/8/2024
4.0.209 87 7/5/2024
4.0.208 80 7/5/2024
4.0.207 79 7/2/2024
4.0.206 71 7/1/2024
4.0.205 88 6/27/2024
4.0.204 72 6/26/2024
4.0.203 79 6/25/2024
4.0.202 78 6/24/2024
4.0.201 573 6/19/2024
4.0.200 94 6/18/2024
4.0.199 69 6/17/2024
4.0.198 73 6/14/2024
4.0.197 75 6/13/2024
4.0.196 71 6/12/2024
4.0.195 81 6/3/2024
4.0.194 81 5/31/2024
4.0.193 85 5/30/2024
4.0.192 83 5/29/2024
4.0.191 73 5/27/2024
4.0.190 69 5/27/2024
4.0.189 79 5/23/2024
4.0.188 84 5/22/2024
4.0.187 79 5/21/2024
4.0.186 90 5/20/2024
4.0.185 95 5/17/2024
4.0.184 86 5/16/2024
4.0.183 97 5/15/2024
4.0.182 93 5/8/2024
4.0.181 81 5/7/2024
4.0.180 94 5/6/2024
4.0.179 93 5/3/2024
4.0.178 553 5/2/2024
4.0.177 61 5/1/2024
4.0.176 87 4/30/2024
4.0.175 90 4/29/2024
4.0.174 89 4/29/2024
4.0.173 95 4/25/2024
4.0.172 85 4/24/2024
4.0.171 89 4/16/2024
4.0.170 95 4/15/2024
4.0.169 79 4/12/2024
4.0.168 82 4/12/2024
4.0.167 102 4/11/2024
4.0.166 89 4/10/2024
4.0.165 94 4/9/2024
4.0.164 99 4/8/2024
4.0.163 83 4/1/2024
4.0.162 83 3/29/2024
4.0.161 83 3/28/2024
4.0.160 79 3/26/2024
4.0.159 106 3/23/2024
4.0.158 94 3/22/2024
4.0.157 93 3/21/2024
4.0.156 83 3/18/2024
4.0.155 109 3/15/2024
4.0.154 96 3/14/2024
4.0.153 107 3/13/2024
4.0.152 95 3/11/2024
4.0.151 97 3/8/2024
4.0.150 102 3/7/2024
4.0.149 101 3/6/2024
4.0.148 98 3/5/2024
4.0.147 773 3/4/2024
4.0.146 116 3/1/2024
4.0.145 102 2/29/2024
4.0.144 97 2/28/2024
4.0.143 95 2/27/2024
4.0.142 97 2/26/2024
4.0.141 96 2/23/2024
4.0.140 106 2/22/2024
4.0.139 105 2/21/2024
4.0.138 112 2/20/2024
4.0.137 291 2/19/2024
4.0.136 93 2/19/2024
4.0.135 85 2/16/2024
4.0.134 78 2/16/2024
4.0.133 88 2/15/2024
4.0.132 96 2/14/2024
4.0.131 86 2/13/2024
4.0.130 107 2/12/2024
4.0.129 89 2/9/2024
4.0.128 96 2/8/2024
4.0.127 85 2/7/2024
4.0.126 102 2/6/2024
4.0.125 77 2/6/2024
4.0.124 90 2/5/2024
4.0.123 372 2/2/2024
4.0.122 96 2/1/2024
4.0.121 90 2/1/2024
4.0.120 89 1/31/2024
4.0.119 160 1/30/2024
4.0.118 106 1/29/2024
4.0.117 115 1/26/2024
4.0.116 93 1/24/2024
4.0.115 88 1/23/2024
4.0.114 96 1/22/2024
4.0.113 246 1/16/2024
4.0.112 120 1/15/2024
4.0.111 95 1/15/2024
4.0.110 107 1/12/2024
4.0.109 88 1/11/2024
4.0.108 105 1/10/2024
4.0.107 240 1/8/2024
4.0.106 147 1/5/2024
4.0.105 244 12/26/2023
4.0.104 103 12/26/2023
4.0.103 132 12/25/2023
4.0.102 116 12/25/2023
4.0.101 171 12/22/2023
4.0.100 130 12/21/2023
4.0.99 151 12/15/2023
4.0.98 118 12/14/2023
4.0.97 106 12/13/2023
4.0.96 118 12/13/2023
4.0.95 237 12/12/2023
4.0.94 112 12/12/2023
4.0.93 119 12/11/2023
4.0.92 115 12/11/2023
4.0.91 164 12/6/2023
4.0.90 126 12/6/2023
4.0.89 114 12/5/2023
4.0.88 159 12/4/2023
4.0.87 173 11/24/2023
4.0.86 129 11/23/2023
4.0.85 117 11/21/2023
4.0.84 127 11/20/2023
4.0.83 128 11/20/2023
4.0.82 144 11/17/2023
4.0.81 353 11/16/2023
4.0.80 123 11/15/2023
4.0.79 127 11/13/2023
4.0.78 136 11/9/2023
4.0.77 144 11/8/2023
4.0.76 115 11/8/2023
4.0.75 117 11/7/2023
4.0.74 132 11/6/2023
4.0.73 132 11/3/2023
4.0.72 155 11/2/2023
4.0.71 115 11/1/2023
4.0.70 112 11/1/2023
4.0.69 134 10/31/2023
4.0.68 141 10/30/2023
4.0.67 139 10/27/2023
4.0.66 134 10/26/2023
4.0.65 151 10/25/2023
4.0.64 142 10/17/2023
4.0.63 111 10/17/2023
4.0.62 158 10/16/2023
4.0.61 165 10/13/2023
4.0.60 176 10/12/2023
4.0.59 134 10/11/2023
4.0.58 160 10/5/2023
4.0.57 132 10/4/2023
4.0.56 131 9/26/2023
4.0.55 133 9/25/2023
4.0.54 146 9/22/2023
4.0.53 144 9/20/2023
4.0.52 147 9/19/2023
4.0.51 147 9/18/2023
4.0.50 130 9/18/2023
4.0.49 188 9/14/2023
4.0.48 151 9/13/2023
4.0.47 134 9/12/2023
4.0.46 213 9/11/2023
4.0.45 121 9/11/2023
4.0.44 126 9/11/2023
4.0.43 227 9/7/2023
4.0.42 128 9/6/2023
4.0.41 178 9/5/2023
4.0.40 131 9/4/2023
4.0.39 141 9/4/2023
4.0.38 146 9/1/2023
4.0.37 177 8/31/2023
4.0.36 163 8/30/2023
4.0.35 187 8/29/2023
4.0.34 126 8/29/2023
4.0.33 192 8/28/2023
4.0.32 185 8/25/2023
4.0.31 168 8/24/2023
4.0.30 164 8/23/2023
4.0.29 165 8/22/2023
4.0.28 172 8/18/2023
4.0.27 169 8/17/2023
4.0.26 157 8/17/2023
4.0.25 147 8/16/2023
4.0.24 218 8/10/2023
4.0.23 190 8/9/2023
4.0.22 181 8/8/2023
4.0.21 159 8/8/2023
4.0.20 271 8/7/2023
4.0.19 169 8/4/2023
4.0.18 226 8/3/2023
4.0.17 190 8/2/2023
4.0.16 200 7/26/2023
4.0.15 181 7/25/2023
4.0.14 201 7/20/2023
4.0.13 187 7/19/2023
4.0.12 177 7/18/2023
4.0.11 139 7/18/2023
4.0.10 179 7/18/2023
4.0.9 150 7/18/2023
4.0.8 225 7/17/2023
4.0.7 155 7/17/2023
4.0.6 508 1/30/2023
4.0.5 373 1/30/2023
4.0.4 372 1/27/2023
4.0.3 476 12/13/2022
4.0.0 300 12/12/2022
3.0.47 1,460 6/10/2022
3.0.45 935 4/20/2022
3.0.44 951 1/11/2022
3.0.43 580 1/10/2022
3.0.42 1,037 6/17/2021
3.0.41 711 6/16/2021
3.0.40 677 6/16/2021
3.0.39 483 6/16/2021
3.0.38 939 1/7/2021
3.0.37 757 12/16/2020
3.0.36 721 12/14/2020
3.0.35 2,214 9/13/2020
3.0.34 827 6/19/2020
3.0.33 1,766 5/12/2020
3.0.32 1,325 5/12/2020
3.0.31 844 4/28/2020
3.0.30 810 4/24/2020
3.0.29 783 4/16/2020
3.0.28 851 4/16/2020
3.0.27 539 4/15/2020
3.0.26 815 4/15/2020
3.0.25 867 4/14/2020
3.0.24 566 4/14/2020
3.0.23 888 4/10/2020
3.0.22 840 4/10/2020
3.0.21 879 4/7/2020
3.0.20 2,650 3/26/2020
3.0.19 877 3/26/2020
3.0.18 552 3/25/2020
3.0.17 555 3/25/2020
3.0.16 571 3/25/2020
3.0.15 578 3/25/2020
3.0.13 569 3/25/2020
3.0.12 580 3/25/2020
3.0.11 547 3/25/2020
3.0.10 1,097 3/25/2020
3.0.9 911 3/22/2020
3.0.8 539 3/22/2020
3.0.7 916 3/21/2020
3.0.6 1,522 3/13/2020
3.0.5 587 3/13/2020
3.0.4 1,272 2/28/2020
3.0.3 1,134 2/21/2020
3.0.2 617 2/11/2020
3.0.1 586 2/11/2020
3.0.0 1,708 12/23/2019
2.0.13 609 11/4/2019
2.0.12 672 6/19/2019
2.0.11 646 6/19/2019
2.0.10 956 4/17/2019
2.0.9 1,486 2/21/2019
2.0.8 3,761 8/1/2018
2.0.7 1,176 8/1/2018
2.0.6 1,571 6/26/2018
2.0.5 959 6/14/2018
2.0.4 1,527 6/1/2018
2.0.3 1,511 5/22/2018
2.0.2 2,065 5/11/2018
2.0.1 2,128 2/13/2018
2.0.0 2,023 1/2/2018
1.0.29 3,708 11/16/2017
1.0.28 896 11/16/2017
1.0.27 6,121 10/18/2017
1.0.26 4,402 9/22/2017
1.0.24 986 9/22/2017
1.0.23 1,298 9/22/2017
1.0.22 976 9/22/2017
1.0.21 981 9/22/2017
1.0.19 992 9/22/2017
1.0.18 979 9/21/2017
1.0.17 1,989 8/4/2017
1.0.16 993 7/3/2017
1.0.15 1,000 6/16/2017
1.0.13 987 6/16/2017
1.0.12 997 6/16/2017
1.0.11 1,017 5/30/2017
1.0.9 1,010 5/25/2017
1.0.8 994 5/24/2017
1.0.7 1,012 5/19/2017
1.0.6 1,052 5/17/2017
1.0.4 1,106 4/3/2017
1.0.3 1,114 3/22/2017
1.0.2 1,103 2/2/2017