diff --git a/minisqlquery-master/src/MiniSqlQuery.Core/DbModel/DbModelInstance.cs b/minisqlquery-master/src/MiniSqlQuery.Core/DbModel/DbModelInstance.cs
new file mode 100644
index 0000000..5776f44
--- /dev/null
+++ b/minisqlquery-master/src/MiniSqlQuery.Core/DbModel/DbModelInstance.cs
@@ -0,0 +1,101 @@
+#region License
+
+// Copyright 2005-2019 Paul Kohler (https://github.com/paulkohler/minisqlquery). All rights reserved.
+// This source code is made available under the terms of the GNU Lesser General Public License v3.0
+// https://github.com/paulkohler/minisqlquery/blob/master/LICENSE
+#endregion
+
+using System;
+using System.Collections.Generic;
+
+namespace MiniSqlQuery.Core.DbModel
+{
+ /// <summary>The db model instance.</summary>
+ public class DbModelInstance
+ {
+ /// <summary>The _tables.</summary>
+ private readonly List<DbModelTable> _tables;
+
+ /// <summary>The _views.</summary>
+ private readonly List<DbModelView> _views;
+
+ /// <summary>Initializes a new instance of the <see cref="DbModelInstance"/> class.</summary>
+ public DbModelInstance()
+ {
+ _tables = new List<DbModelTable>();
+ _views = new List<DbModelView>();
+ }
+
+ /// <summary>Gets or sets ConnectionString.</summary>
+ /// <value>The connection string.</value>
+ public string ConnectionString { get; set; }
+
+ /// <summary>Gets or sets ProviderName.</summary>
+ /// <value>The provider name.</value>
+ public string ProviderName { get; set; }
+
+ /// <summary>Gets Tables.</summary>
+ /// <value>The tables.</value>
+ public virtual ICollection<DbModelTable> Tables
+ {
+ get { return _tables; }
+ }
+
+ /// <summary>Gets or sets Types.</summary>
+ /// <value>The types.</value>
+ public Dictionary<string, DbModelType> Types { get; set; }
+
+ /// <summary>Gets Views.</summary>
+ /// <value>The views.</value>
+ public virtual ICollection<DbModelView> Views
+ {
+ get { return _views; }
+ }
+
+ /// <summary>The add.</summary>
+ /// <param name="table">The table.</param>
+ public virtual void Add(DbModelTable table)
+ {
+ table.ParentDb = this;
+ _tables.Add(table);
+ }
+
+ /// <summary>The add.</summary>
+ /// <param name="view">The view.</param>
+ public virtual void Add(DbModelView view)
+ {
+ view.ParentDb = this;
+ _views.Add(view);
+ }
+
+ /// <summary>The find table.</summary>
+ /// <param name="tableName">The table name.</param>
+ /// <returns></returns>
+ public virtual DbModelTable FindTable(string tableName)
+ {
+ return _tables.Find(table => table.FullName.Equals(tableName, StringComparison.InvariantCultureIgnoreCase));
+ }
+
+ /// <summary>The find table or view.</summary>
+ /// <param name="name">The name.</param>
+ /// <returns></returns>
+ public virtual DbModelTable FindTableOrView(string name)
+ {
+ var obj = _tables.Find(table => table.FullName.Equals(name, StringComparison.InvariantCultureIgnoreCase));
+ if (obj == null)
+ {
+ obj = _views.Find(view => view.FullName.Equals(name, StringComparison.InvariantCultureIgnoreCase));
+ }
+
+ return obj;
+ }
+
+ /// <summary>The find view.</summary>
+ /// <param name="viewName">The view name.</param>
+ /// <returns></returns>
+ public virtual DbModelTable FindView(string viewName)
+ {
+ return _views.Find(view => view.FullName.Equals(viewName, StringComparison.InvariantCultureIgnoreCase));
+ }
+ }
+}
\ No newline at end of file