Data.Modeler 4.0.230

There is a newer version of this package available.
See the version list below for details.
dotnet add package Data.Modeler --version 4.0.230
                    
NuGet\Install-Package Data.Modeler -Version 4.0.230
                    
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.230" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Data.Modeler" Version="4.0.230" />
                    
Directory.Packages.props
<PackageReference Include="Data.Modeler" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Data.Modeler --version 4.0.230
                    
#r "nuget: Data.Modeler, 4.0.230"
                    
#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.
#addin nuget:?package=Data.Modeler&version=4.0.230
                    
Install as a Cake Addin
#tool nuget:?package=Data.Modeler&version=4.0.230
                    
Install as a Cake Tool

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.  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.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.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.35 109 6/18/2025
5.0.34 281 6/10/2025
5.0.33 82 5/30/2025
5.0.32 90 5/23/2025
5.0.31 228 5/14/2025
5.0.30 107 5/2/2025
5.0.29 162 4/28/2025
5.0.28 113 4/11/2025
5.0.27 152 3/17/2025
5.0.26 120 2/24/2025
5.0.25 150 2/12/2025
5.0.24 242 2/3/2025
5.0.23 168 1/30/2025
5.0.22 130 1/29/2025
5.0.21 98 1/29/2025
5.0.20 125 1/28/2025
5.0.19 121 1/24/2025
5.0.18 130 1/23/2025
5.0.17 105 1/23/2025
5.0.16 148 1/16/2025
5.0.15 126 1/15/2025
5.0.14 106 1/14/2025
5.0.13 114 1/13/2025
5.0.12 116 1/10/2025
5.0.11 124 1/9/2025
5.0.10 101 1/8/2025
5.0.9 182 12/17/2024
5.0.8 115 12/17/2024
5.0.7 160 12/10/2024
5.0.6 121 12/9/2024
5.0.5 187 11/26/2024
5.0.4 153 11/26/2024
5.0.3 108 11/25/2024
5.0.2 144 11/24/2024
5.0.1 125 11/23/2024
5.0.0 121 11/23/2024
4.0.268 139 11/19/2024
4.0.267 119 11/11/2024
4.0.266 111 11/6/2024
4.0.265 109 11/5/2024
4.0.264 111 11/4/2024
4.0.263 125 11/1/2024
4.0.262 113 10/31/2024
4.0.261 117 10/30/2024
4.0.260 114 10/29/2024
4.0.259 112 10/29/2024
4.0.258 121 10/25/2024
4.0.257 110 10/24/2024
4.0.256 116 10/21/2024
4.0.255 127 10/16/2024
4.0.254 105 10/15/2024
4.0.253 119 10/11/2024
4.0.252 113 10/10/2024
4.0.251 115 10/9/2024
4.0.250 124 10/8/2024
4.0.249 120 10/2/2024
4.0.248 121 10/1/2024
4.0.247 117 9/30/2024
4.0.246 124 9/27/2024
4.0.245 119 9/24/2024
4.0.244 129 9/23/2024
4.0.243 113 9/23/2024
4.0.242 152 9/17/2024
4.0.241 143 9/10/2024
4.0.240 124 9/9/2024
4.0.239 127 9/6/2024
4.0.238 132 9/5/2024
4.0.237 134 9/3/2024
4.0.236 134 9/2/2024
4.0.235 136 8/30/2024
4.0.234 130 8/29/2024
4.0.233 135 8/28/2024
4.0.232 134 8/27/2024
4.0.231 138 8/26/2024
4.0.230 155 8/23/2024
4.0.229 150 8/22/2024
4.0.228 151 8/21/2024
4.0.227 152 8/20/2024
4.0.226 149 8/20/2024
4.0.225 169 8/19/2024
4.0.224 163 8/16/2024
4.0.223 143 8/15/2024
4.0.222 165 8/14/2024
4.0.221 126 8/5/2024
4.0.220 123 8/2/2024
4.0.219 142 8/1/2024
4.0.218 114 7/31/2024
4.0.217 132 7/26/2024
4.0.216 109 7/25/2024
4.0.215 85 7/24/2024
4.0.214 141 7/11/2024
4.0.213 125 7/10/2024
4.0.212 116 7/9/2024
4.0.211 120 7/9/2024
4.0.210 122 7/8/2024
4.0.209 139 7/5/2024
4.0.208 136 7/5/2024
4.0.207 127 7/2/2024
4.0.206 120 7/1/2024
4.0.205 145 6/27/2024
4.0.204 134 6/26/2024
4.0.203 140 6/25/2024
4.0.202 134 6/24/2024
4.0.201 1,019 6/19/2024
4.0.200 140 6/18/2024
4.0.199 121 6/17/2024
4.0.198 127 6/14/2024
4.0.197 126 6/13/2024
4.0.196 131 6/12/2024
4.0.195 146 6/3/2024
4.0.194 130 5/31/2024
4.0.193 153 5/30/2024
4.0.192 132 5/29/2024
4.0.191 154 5/27/2024
4.0.190 127 5/27/2024
4.0.189 125 5/23/2024
4.0.188 137 5/22/2024
4.0.187 169 5/21/2024
4.0.186 141 5/20/2024
4.0.185 149 5/17/2024
4.0.184 144 5/16/2024
4.0.183 147 5/15/2024
4.0.182 146 5/8/2024
4.0.181 134 5/7/2024
4.0.180 141 5/6/2024
4.0.179 147 5/3/2024
4.0.178 706 5/2/2024
4.0.177 109 5/1/2024
4.0.176 137 4/30/2024
4.0.175 135 4/29/2024
4.0.174 134 4/29/2024
4.0.173 144 4/25/2024
4.0.172 140 4/24/2024
4.0.171 151 4/16/2024
4.0.170 145 4/15/2024
4.0.169 137 4/12/2024
4.0.168 133 4/12/2024
4.0.167 149 4/11/2024
4.0.166 162 4/10/2024
4.0.165 145 4/9/2024
4.0.164 149 4/8/2024
4.0.163 149 4/1/2024
4.0.162 130 3/29/2024
4.0.161 138 3/28/2024
4.0.160 128 3/26/2024
4.0.159 157 3/23/2024
4.0.158 149 3/22/2024
4.0.157 145 3/21/2024
4.0.156 130 3/18/2024
4.0.155 161 3/15/2024
4.0.154 147 3/14/2024
4.0.153 157 3/13/2024
4.0.152 164 3/11/2024
4.0.151 149 3/8/2024
4.0.150 149 3/7/2024
4.0.149 143 3/6/2024
4.0.148 151 3/5/2024
4.0.147 969 3/4/2024
4.0.146 167 3/1/2024
4.0.145 163 2/29/2024
4.0.144 160 2/28/2024
4.0.143 166 2/27/2024
4.0.142 156 2/26/2024
4.0.141 180 2/23/2024
4.0.140 163 2/22/2024
4.0.139 156 2/21/2024
4.0.138 166 2/20/2024
4.0.137 407 2/19/2024
4.0.136 141 2/19/2024
4.0.135 136 2/16/2024
4.0.134 140 2/16/2024
4.0.133 143 2/15/2024
4.0.132 151 2/14/2024
4.0.131 140 2/13/2024
4.0.130 169 2/12/2024
4.0.129 142 2/9/2024
4.0.128 183 2/8/2024
4.0.127 146 2/7/2024
4.0.126 157 2/6/2024
4.0.125 124 2/6/2024
4.0.124 135 2/5/2024
4.0.123 497 2/2/2024
4.0.122 150 2/1/2024
4.0.121 138 2/1/2024
4.0.120 156 1/31/2024
4.0.119 225 1/30/2024
4.0.118 150 1/29/2024
4.0.117 167 1/26/2024
4.0.116 141 1/24/2024
4.0.115 133 1/23/2024
4.0.114 139 1/22/2024
4.0.113 336 1/16/2024
4.0.112 180 1/15/2024
4.0.111 160 1/15/2024
4.0.110 153 1/12/2024
4.0.109 138 1/11/2024
4.0.108 146 1/10/2024
4.0.107 327 1/8/2024
4.0.106 207 1/5/2024
4.0.105 334 12/26/2023
4.0.104 161 12/26/2023
4.0.103 187 12/25/2023
4.0.102 160 12/25/2023
4.0.101 244 12/22/2023
4.0.100 185 12/21/2023
4.0.99 206 12/15/2023
4.0.98 168 12/14/2023
4.0.97 148 12/13/2023
4.0.96 173 12/13/2023
4.0.95 332 12/12/2023
4.0.94 162 12/12/2023
4.0.93 171 12/11/2023
4.0.92 164 12/11/2023
4.0.91 219 12/6/2023
4.0.90 165 12/6/2023
4.0.89 158 12/5/2023
4.0.88 213 12/4/2023
4.0.87 222 11/24/2023
4.0.86 174 11/23/2023
4.0.85 163 11/21/2023
4.0.84 171 11/20/2023
4.0.83 162 11/20/2023
4.0.82 200 11/17/2023
4.0.81 659 11/16/2023
4.0.80 171 11/15/2023
4.0.79 174 11/13/2023
4.0.78 185 11/9/2023
4.0.77 197 11/8/2023
4.0.76 150 11/8/2023
4.0.75 165 11/7/2023
4.0.74 181 11/6/2023
4.0.73 175 11/3/2023
4.0.72 211 11/2/2023
4.0.71 165 11/1/2023
4.0.70 157 11/1/2023
4.0.69 197 10/31/2023
4.0.68 185 10/30/2023
4.0.67 187 10/27/2023
4.0.66 188 10/26/2023
4.0.65 196 10/25/2023
4.0.64 189 10/17/2023
4.0.63 150 10/17/2023
4.0.62 209 10/16/2023
4.0.61 212 10/13/2023
4.0.60 224 10/12/2023
4.0.59 175 10/11/2023
4.0.58 209 10/5/2023
4.0.57 181 10/4/2023
4.0.56 173 9/26/2023
4.0.55 175 9/25/2023
4.0.54 193 9/22/2023
4.0.53 196 9/20/2023
4.0.52 189 9/19/2023
4.0.51 189 9/18/2023
4.0.50 169 9/18/2023
4.0.49 232 9/14/2023
4.0.48 204 9/13/2023
4.0.47 174 9/12/2023
4.0.46 256 9/11/2023
4.0.45 169 9/11/2023
4.0.44 162 9/11/2023
4.0.43 286 9/7/2023
4.0.42 170 9/6/2023
4.0.41 230 9/5/2023
4.0.40 179 9/4/2023
4.0.39 182 9/4/2023
4.0.38 216 9/1/2023
4.0.37 225 8/31/2023
4.0.36 213 8/30/2023
4.0.35 234 8/29/2023
4.0.34 167 8/29/2023
4.0.33 252 8/28/2023
4.0.32 233 8/25/2023
4.0.31 223 8/24/2023
4.0.30 206 8/23/2023
4.0.29 215 8/22/2023
4.0.28 217 8/18/2023
4.0.27 220 8/17/2023
4.0.26 204 8/17/2023
4.0.25 190 8/16/2023
4.0.24 281 8/10/2023
4.0.23 236 8/9/2023
4.0.22 227 8/8/2023
4.0.21 208 8/8/2023
4.0.20 319 8/7/2023
4.0.19 216 8/4/2023
4.0.18 275 8/3/2023
4.0.17 244 8/2/2023
4.0.16 248 7/26/2023
4.0.15 231 7/25/2023
4.0.14 251 7/20/2023
4.0.13 237 7/19/2023
4.0.12 225 7/18/2023
4.0.11 177 7/18/2023
4.0.10 233 7/18/2023
4.0.9 188 7/18/2023
4.0.8 300 7/17/2023
4.0.7 196 7/17/2023
4.0.6 571 1/30/2023
4.0.5 431 1/30/2023
4.0.4 434 1/27/2023
4.0.3 542 12/13/2022
4.0.0 349 12/12/2022
3.0.47 1,558 6/10/2022
3.0.45 1,023 4/20/2022
3.0.44 1,045 1/11/2022
3.0.43 665 1/10/2022
3.0.42 1,143 6/17/2021
3.0.41 794 6/16/2021
3.0.40 757 6/16/2021
3.0.39 547 6/16/2021
3.0.38 1,061 1/7/2021
3.0.37 876 12/16/2020
3.0.36 809 12/14/2020
3.0.35 2,356 9/13/2020
3.0.34 929 6/19/2020
3.0.33 1,926 5/12/2020
3.0.32 1,447 5/12/2020
3.0.31 942 4/28/2020
3.0.30 895 4/24/2020
3.0.29 879 4/16/2020
3.0.28 950 4/16/2020
3.0.27 624 4/15/2020
3.0.26 913 4/15/2020
3.0.25 975 4/14/2020
3.0.24 661 4/14/2020
3.0.23 1,002 4/10/2020
3.0.22 950 4/10/2020
3.0.21 986 4/7/2020
3.0.20 2,809 3/26/2020
3.0.19 979 3/26/2020
3.0.18 644 3/25/2020
3.0.17 644 3/25/2020
3.0.16 653 3/25/2020
3.0.15 671 3/25/2020
3.0.13 659 3/25/2020
3.0.12 669 3/25/2020
3.0.11 637 3/25/2020
3.0.10 1,192 3/25/2020
3.0.9 1,012 3/22/2020
3.0.8 628 3/22/2020
3.0.7 1,009 3/21/2020
3.0.6 1,650 3/13/2020
3.0.5 674 3/13/2020
3.0.4 1,391 2/28/2020
3.0.3 1,245 2/21/2020
3.0.2 699 2/11/2020
3.0.1 673 2/11/2020
3.0.0 1,844 12/23/2019
2.0.13 693 11/4/2019
2.0.12 769 6/19/2019
2.0.11 749 6/19/2019
2.0.10 1,047 4/17/2019
2.0.9 1,609 2/21/2019
2.0.8 4,022 8/1/2018
2.0.7 1,366 8/1/2018
2.0.6 1,840 6/26/2018
2.0.5 1,206 6/14/2018
2.0.4 1,794 6/1/2018
2.0.3 1,758 5/22/2018
2.0.2 2,345 5/11/2018
2.0.1 2,420 2/13/2018
2.0.0 2,321 1/2/2018
1.0.29 3,966 11/16/2017
1.0.28 1,079 11/16/2017
1.0.27 6,487 10/18/2017
1.0.26 4,685 9/22/2017
1.0.24 1,150 9/22/2017
1.0.23 1,491 9/22/2017
1.0.22 1,158 9/22/2017
1.0.21 1,166 9/22/2017
1.0.19 1,170 9/22/2017
1.0.18 1,164 9/21/2017
1.0.17 2,211 8/4/2017
1.0.16 1,175 7/3/2017
1.0.15 1,192 6/16/2017
1.0.13 1,183 6/16/2017
1.0.12 1,174 6/16/2017
1.0.11 1,194 5/30/2017
1.0.9 1,183 5/25/2017
1.0.8 1,169 5/24/2017
1.0.7 1,195 5/19/2017
1.0.6 1,231 5/17/2017
1.0.4 1,292 4/3/2017
1.0.3 1,299 3/22/2017
1.0.2 1,290 2/2/2017