diff --git a/csharp/db - demo -app/db - demo -app/App.config b/csharp/db - demo -app/db - demo -app/App.config
new file mode 100644
index 0000000..799a7fa
--- /dev/null
+++ b/csharp/db - demo -app/db - demo -app/App.config
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/csharp/db - demo -app/db - demo -app/Program.cs b/csharp/db - demo -app/db - demo -app/Program.cs
new file mode 100644
index 0000000..347538e
--- /dev/null
+++ b/csharp/db - demo -app/db - demo -app/Program.cs
@@ -0,0 +1,22 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace db___demo__app
+{
+ static class Program
+ {
+ ///
+ /// The main entry point for the application.
+ ///
+ [STAThread]
+ static void Main()
+ {
+ Application.EnableVisualStyles();
+ Application.SetCompatibleTextRenderingDefault(false);
+ Application.Run(new StartPage());
+ }
+ }
+}
diff --git a/csharp/db - demo -app/db - demo -app/Properties/AssemblyInfo.cs b/csharp/db - demo -app/db - demo -app/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..f50d910
--- /dev/null
+++ b/csharp/db - demo -app/db - demo -app/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("db - demo -app")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("db - demo -app")]
+[assembly: AssemblyCopyright("Copyright © 2017")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("261f26ce-187c-4104-8ef7-8556f942c601")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/csharp/db - demo -app/db - demo -app/Properties/Resources.Designer.cs b/csharp/db - demo -app/db - demo -app/Properties/Resources.Designer.cs
new file mode 100644
index 0000000..f71b2e1
--- /dev/null
+++ b/csharp/db - demo -app/db - demo -app/Properties/Resources.Designer.cs
@@ -0,0 +1,71 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.42000
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+namespace db___demo__app.Properties
+{
+
+
+ ///
+ /// A strongly-typed resource class, for looking up localized strings, etc.
+ ///
+ // This class was auto-generated by the StronglyTypedResourceBuilder
+ // class via a tool like ResGen or Visual Studio.
+ // To add or remove a member, edit your .ResX file then rerun ResGen
+ // with the /str option, or rebuild your VS project.
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class Resources
+ {
+
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Resources()
+ {
+ }
+
+ ///
+ /// Returns the cached ResourceManager instance used by this class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager
+ {
+ get
+ {
+ if ((resourceMan == null))
+ {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("db___demo__app.Properties.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ ///
+ /// Overrides the current thread's CurrentUICulture property for all
+ /// resource lookups using this strongly typed resource class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture
+ {
+ get
+ {
+ return resourceCulture;
+ }
+ set
+ {
+ resourceCulture = value;
+ }
+ }
+ }
+}
diff --git a/csharp/db - demo -app/db - demo -app/Properties/Resources.resx b/csharp/db - demo -app/db - demo -app/Properties/Resources.resx
new file mode 100644
index 0000000..af7dbeb
--- /dev/null
+++ b/csharp/db - demo -app/db - demo -app/Properties/Resources.resx
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/csharp/db - demo -app/db - demo -app/Properties/Settings.Designer.cs b/csharp/db - demo -app/db - demo -app/Properties/Settings.Designer.cs
new file mode 100644
index 0000000..9fb4849
--- /dev/null
+++ b/csharp/db - demo -app/db - demo -app/Properties/Settings.Designer.cs
@@ -0,0 +1,30 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.42000
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+namespace db___demo__app.Properties
+{
+
+
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
+ internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
+ {
+
+ private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
+
+ public static Settings Default
+ {
+ get
+ {
+ return defaultInstance;
+ }
+ }
+ }
+}
diff --git a/csharp/db - demo -app/db - demo -app/Properties/Settings.settings b/csharp/db - demo -app/db - demo -app/Properties/Settings.settings
new file mode 100644
index 0000000..3964565
--- /dev/null
+++ b/csharp/db - demo -app/db - demo -app/Properties/Settings.settings
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/csharp/db - demo -app/db - demo -app/StartPage.Designer.cs b/csharp/db - demo -app/db - demo -app/StartPage.Designer.cs
new file mode 100644
index 0000000..9f2c770
--- /dev/null
+++ b/csharp/db - demo -app/db - demo -app/StartPage.Designer.cs
@@ -0,0 +1,124 @@
+namespace db___demo__app
+{
+ partial class StartPage
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.titel = new System.Windows.Forms.Label();
+ this.locations = new System.Windows.Forms.ListBox();
+ this.location_titel = new System.Windows.Forms.Label();
+ this.search = new System.Windows.Forms.TextBox();
+ this.search_button = new System.Windows.Forms.Button();
+ this.textBox1 = new System.Windows.Forms.TextBox();
+ this.SuspendLayout();
+ //
+ // titel
+ //
+ this.titel.AutoSize = true;
+ this.titel.Font = new System.Drawing.Font("Microsoft Sans Serif", 16.2F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.titel.Location = new System.Drawing.Point(36, 32);
+ this.titel.Name = "titel";
+ this.titel.Size = new System.Drawing.Size(330, 32);
+ this.titel.TabIndex = 0;
+ this.titel.Text = "Freier Markt im Kleinen";
+ this.titel.Click += new System.EventHandler(this.label1_Click);
+ //
+ // locations
+ //
+ this.locations.FormattingEnabled = true;
+ this.locations.ItemHeight = 25;
+ this.locations.Location = new System.Drawing.Point(41, 100);
+ this.locations.Name = "locations";
+ this.locations.Size = new System.Drawing.Size(325, 129);
+ this.locations.TabIndex = 1;
+ //
+ // location_titel
+ //
+ this.location_titel.AutoSize = true;
+ this.location_titel.Location = new System.Drawing.Point(36, 72);
+ this.location_titel.Name = "location_titel";
+ this.location_titel.Size = new System.Drawing.Size(124, 25);
+ this.location_titel.TabIndex = 2;
+ this.location_titel.Text = "Freie Stände";
+ this.location_titel.Click += new System.EventHandler(this.label1_Click_1);
+ //
+ // search
+ //
+ this.search.Location = new System.Drawing.Point(41, 242);
+ this.search.Name = "search";
+ this.search.Size = new System.Drawing.Size(227, 30);
+ this.search.TabIndex = 7;
+ //
+ // search_button
+ //
+ this.search_button.Location = new System.Drawing.Point(280, 242);
+ this.search_button.Name = "search_button";
+ this.search_button.Size = new System.Drawing.Size(86, 33);
+ this.search_button.TabIndex = 8;
+ this.search_button.Text = "search";
+ this.search_button.UseVisualStyleBackColor = true;
+ this.search_button.Click += new System.EventHandler(this.search_button_Click);
+ //
+ // textBox1
+ //
+ this.textBox1.Location = new System.Drawing.Point(481, 156);
+ this.textBox1.Name = "textBox1";
+ this.textBox1.Size = new System.Drawing.Size(287, 30);
+ this.textBox1.TabIndex = 9;
+ //
+ // StartPage
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(12F, 25F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(957, 445);
+ this.Controls.Add(this.textBox1);
+ this.Controls.Add(this.search_button);
+ this.Controls.Add(this.search);
+ this.Controls.Add(this.location_titel);
+ this.Controls.Add(this.locations);
+ this.Controls.Add(this.titel);
+ this.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
+ this.Name = "StartPage";
+ this.Text = "FMiK-Start";
+ this.Load += new System.EventHandler(this.StartPage_Load);
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.Label titel;
+ private System.Windows.Forms.ListBox locations;
+ private System.Windows.Forms.Label location_titel;
+ private System.Windows.Forms.TextBox search;
+ private System.Windows.Forms.Button search_button;
+ private System.Windows.Forms.TextBox textBox1;
+ }
+}
+
diff --git a/csharp/db - demo -app/db - demo -app/StartPage.cs b/csharp/db - demo -app/db - demo -app/StartPage.cs
new file mode 100644
index 0000000..d04c257
--- /dev/null
+++ b/csharp/db - demo -app/db - demo -app/StartPage.cs
@@ -0,0 +1,43 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace db___demo__app
+{
+ public partial class StartPage : Form
+ {
+ List location = new List();
+ public StartPage()
+ {
+ InitializeComponent();
+ }
+
+ private void StartPage_Load(object sender, EventArgs e)
+ {
+
+ }
+
+ private void label1_Click(object sender, EventArgs e)
+ {
+
+ }
+
+ private void label1_Click_1(object sender, EventArgs e)
+ {
+
+ }
+
+ private void search_button_Click(object sender, EventArgs e)
+ {
+ dataAccess db = new dataAccess();
+
+ location = db.GetLocations(search.Text);
+ }
+ }
+}
diff --git a/csharp/db - demo -app/db - demo -app/StartPage.resx b/csharp/db - demo -app/db - demo -app/StartPage.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/csharp/db - demo -app/db - demo -app/StartPage.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/csharp/db - demo -app/db - demo -app/bin/Debug/db - demo -app.exe b/csharp/db - demo -app/db - demo -app/bin/Debug/db - demo -app.exe
new file mode 100644
index 0000000..af3712e
Binary files /dev/null and b/csharp/db - demo -app/db - demo -app/bin/Debug/db - demo -app.exe differ
diff --git a/csharp/db - demo -app/db - demo -app/bin/Debug/db - demo -app.exe.config b/csharp/db - demo -app/db - demo -app/bin/Debug/db - demo -app.exe.config
new file mode 100644
index 0000000..799a7fa
--- /dev/null
+++ b/csharp/db - demo -app/db - demo -app/bin/Debug/db - demo -app.exe.config
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/csharp/db - demo -app/db - demo -app/bin/Debug/db - demo -app.pdb b/csharp/db - demo -app/db - demo -app/bin/Debug/db - demo -app.pdb
new file mode 100644
index 0000000..d1fe98d
Binary files /dev/null and b/csharp/db - demo -app/db - demo -app/bin/Debug/db - demo -app.pdb differ
diff --git a/csharp/db - demo -app/db - demo -app/dataAccess.cs b/csharp/db - demo -app/db - demo -app/dataAccess.cs
new file mode 100644
index 0000000..91af663
--- /dev/null
+++ b/csharp/db - demo -app/db - demo -app/dataAccess.cs
@@ -0,0 +1,16 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace db___demo__app
+{
+ public class dataAccess
+ {
+ public List GetLocations(string location_name)
+ {
+ throw new NotImplementedException();
+ }
+ }
+}
diff --git a/csharp/db - demo -app/db - demo -app/db-appUI.csproj b/csharp/db - demo -app/db - demo -app/db-appUI.csproj
new file mode 100644
index 0000000..95f2099
--- /dev/null
+++ b/csharp/db - demo -app/db - demo -app/db-appUI.csproj
@@ -0,0 +1,86 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {261F26CE-187C-4104-8EF7-8556F942C601}
+ WinExe
+ db___demo__app
+ db - demo -app
+ v4.5.2
+ 512
+ true
+
+
+ AnyCPU
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ AnyCPU
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Form
+
+
+ StartPage.cs
+
+
+
+
+ StartPage.cs
+
+
+ ResXFileCodeGenerator
+ Resources.Designer.cs
+ Designer
+
+
+ True
+ Resources.resx
+
+
+ SettingsSingleFileGenerator
+ Settings.Designer.cs
+
+
+ True
+ Settings.settings
+ True
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/csharp/db - demo -app/db - demo -app/helper.cs b/csharp/db - demo -app/db - demo -app/helper.cs
new file mode 100644
index 0000000..2f0a8c4
--- /dev/null
+++ b/csharp/db - demo -app/db - demo -app/helper.cs
@@ -0,0 +1,17 @@
+using System;
+using System.Collections.Generic;
+using System.Configuration;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace db___demo__app
+{
+ public static class helper
+ {
+ public static string CnnVal(string name)
+ {
+ return ConfigurationManager.ConnectionStrings[name].ConnectionString;
+ }
+ }
+}
diff --git a/csharp/db - demo -app/db - demo -app/locations.cs b/csharp/db - demo -app/db - demo -app/locations.cs
new file mode 100644
index 0000000..57b8e88
--- /dev/null
+++ b/csharp/db - demo -app/db - demo -app/locations.cs
@@ -0,0 +1,18 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace db___demo__app
+{
+ public class locations
+ {
+ public int location_id { get; set; }
+ public string streetname { get; set; }
+ public int location_capacity { get; set; }
+ public string location_name { get; set; }
+ public int city_id { get; set; }
+ public int country_id { get; set; }
+ }
+}
diff --git a/csharp/db - demo -app/db - demo -app/obj/Debug/CoreCompileInputs.cache b/csharp/db - demo -app/db - demo -app/obj/Debug/CoreCompileInputs.cache
new file mode 100644
index 0000000..a199595
--- /dev/null
+++ b/csharp/db - demo -app/db - demo -app/obj/Debug/CoreCompileInputs.cache
@@ -0,0 +1 @@
+daf65045dc1a637fc3e5d73beee1b42a5ae91ad2
diff --git a/csharp/db - demo -app/db - demo -app/obj/Debug/DesignTimeResolveAssemblyReferences.cache b/csharp/db - demo -app/db - demo -app/obj/Debug/DesignTimeResolveAssemblyReferences.cache
new file mode 100644
index 0000000..8698487
Binary files /dev/null and b/csharp/db - demo -app/db - demo -app/obj/Debug/DesignTimeResolveAssemblyReferences.cache differ
diff --git a/csharp/db - demo -app/db - demo -app/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/csharp/db - demo -app/db - demo -app/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache
new file mode 100644
index 0000000..f031170
Binary files /dev/null and b/csharp/db - demo -app/db - demo -app/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache differ
diff --git a/csharp/db - demo -app/db - demo -app/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs b/csharp/db - demo -app/db - demo -app/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs
new file mode 100644
index 0000000..e69de29
diff --git a/csharp/db - demo -app/db - demo -app/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs b/csharp/db - demo -app/db - demo -app/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs
new file mode 100644
index 0000000..e69de29
diff --git a/csharp/db - demo -app/db - demo -app/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs b/csharp/db - demo -app/db - demo -app/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs
new file mode 100644
index 0000000..e69de29
diff --git a/csharp/db - demo -app/db - demo -app/obj/Debug/db - demo -app.exe b/csharp/db - demo -app/db - demo -app/obj/Debug/db - demo -app.exe
new file mode 100644
index 0000000..af3712e
Binary files /dev/null and b/csharp/db - demo -app/db - demo -app/obj/Debug/db - demo -app.exe differ
diff --git a/csharp/db - demo -app/db - demo -app/obj/Debug/db - demo -app.pdb b/csharp/db - demo -app/db - demo -app/obj/Debug/db - demo -app.pdb
new file mode 100644
index 0000000..d1fe98d
Binary files /dev/null and b/csharp/db - demo -app/db - demo -app/obj/Debug/db - demo -app.pdb differ
diff --git a/csharp/db - demo -app/db - demo -app/obj/Debug/db-appUI.csproj.FileListAbsolute.txt b/csharp/db - demo -app/db - demo -app/obj/Debug/db-appUI.csproj.FileListAbsolute.txt
new file mode 100644
index 0000000..30a31c7
--- /dev/null
+++ b/csharp/db - demo -app/db - demo -app/obj/Debug/db-appUI.csproj.FileListAbsolute.txt
@@ -0,0 +1,9 @@
+c:\users\ismail\documents\visual studio 2017\Projects\db - demo -app\db - demo -app\bin\Debug\db - demo -app.exe.config
+c:\users\ismail\documents\visual studio 2017\Projects\db - demo -app\db - demo -app\bin\Debug\db - demo -app.exe
+c:\users\ismail\documents\visual studio 2017\Projects\db - demo -app\db - demo -app\bin\Debug\db - demo -app.pdb
+c:\users\ismail\documents\visual studio 2017\Projects\db - demo -app\db - demo -app\obj\Debug\db-appUI.csprojResolveAssemblyReference.cache
+c:\users\ismail\documents\visual studio 2017\Projects\db - demo -app\db - demo -app\obj\Debug\db___demo__app.StartPage.resources
+c:\users\ismail\documents\visual studio 2017\Projects\db - demo -app\db - demo -app\obj\Debug\db___demo__app.Properties.Resources.resources
+c:\users\ismail\documents\visual studio 2017\Projects\db - demo -app\db - demo -app\obj\Debug\db-appUI.csproj.GenerateResource.Cache
+c:\users\ismail\documents\visual studio 2017\Projects\db - demo -app\db - demo -app\obj\Debug\db - demo -app.exe
+c:\users\ismail\documents\visual studio 2017\Projects\db - demo -app\db - demo -app\obj\Debug\db - demo -app.pdb
diff --git a/csharp/db - demo -app/db - demo -app/obj/Debug/db-appUI.csproj.GenerateResource.Cache b/csharp/db - demo -app/db - demo -app/obj/Debug/db-appUI.csproj.GenerateResource.Cache
new file mode 100644
index 0000000..3808834
Binary files /dev/null and b/csharp/db - demo -app/db - demo -app/obj/Debug/db-appUI.csproj.GenerateResource.Cache differ
diff --git a/csharp/db - demo -app/db - demo -app/obj/Debug/db-appUI.csprojResolveAssemblyReference.cache b/csharp/db - demo -app/db - demo -app/obj/Debug/db-appUI.csprojResolveAssemblyReference.cache
new file mode 100644
index 0000000..9a4759b
Binary files /dev/null and b/csharp/db - demo -app/db - demo -app/obj/Debug/db-appUI.csprojResolveAssemblyReference.cache differ
diff --git a/csharp/db - demo -app/db - demo -app/obj/Debug/db___demo__app.Properties.Resources.resources b/csharp/db - demo -app/db - demo -app/obj/Debug/db___demo__app.Properties.Resources.resources
new file mode 100644
index 0000000..6c05a97
Binary files /dev/null and b/csharp/db - demo -app/db - demo -app/obj/Debug/db___demo__app.Properties.Resources.resources differ
diff --git a/csharp/db - demo -app/db - demo -app/obj/Debug/db___demo__app.StartPage.resources b/csharp/db - demo -app/db - demo -app/obj/Debug/db___demo__app.StartPage.resources
new file mode 100644
index 0000000..6c05a97
Binary files /dev/null and b/csharp/db - demo -app/db - demo -app/obj/Debug/db___demo__app.StartPage.resources differ
diff --git a/csharp/db - demo -app/db -demo-app.sln b/csharp/db - demo -app/db -demo-app.sln
new file mode 100644
index 0000000..cc99f96
--- /dev/null
+++ b/csharp/db - demo -app/db -demo-app.sln
@@ -0,0 +1,22 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 15
+VisualStudioVersion = 15.0.26403.7
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "db-appUI", "db - demo -app\db-appUI.csproj", "{261F26CE-187C-4104-8EF7-8556F942C601}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {261F26CE-187C-4104-8EF7-8556F942C601}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {261F26CE-187C-4104-8EF7-8556F942C601}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {261F26CE-187C-4104-8EF7-8556F942C601}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {261F26CE-187C-4104-8EF7-8556F942C601}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/csharp/db - demo -app/db-appLibary/Properties/AssemblyInfo.cs b/csharp/db - demo -app/db-appLibary/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..4a0e802
--- /dev/null
+++ b/csharp/db - demo -app/db-appLibary/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("db-appLibary")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("db-appLibary")]
+[assembly: AssemblyCopyright("Copyright © 2017")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("d917f26e-cde7-4bd3-ba68-6a3299cf8c5a")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/csharp/db - demo -app/db-appLibary/db-appLibary.cs b/csharp/db - demo -app/db-appLibary/db-appLibary.cs
new file mode 100644
index 0000000..57cdef2
--- /dev/null
+++ b/csharp/db - demo -app/db-appLibary/db-appLibary.cs
@@ -0,0 +1,14 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace db_appLibary
+{
+ public class locations
+ {
+
+
+ }
+}
diff --git a/csharp/db - demo -app/db-appLibary/db-appLibary.csproj b/csharp/db - demo -app/db-appLibary/db-appLibary.csproj
new file mode 100644
index 0000000..d4444e1
--- /dev/null
+++ b/csharp/db - demo -app/db-appLibary/db-appLibary.csproj
@@ -0,0 +1,48 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {D917F26E-CDE7-4BD3-BA68-6A3299CF8C5A}
+ Library
+ Properties
+ db_appLibary
+ db-appLibary
+ v4.5.2
+ 512
+
+
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/csharp/db - demo -app/db-appLibary/obj/Debug/CoreCompileInputs.cache b/csharp/db - demo -app/db-appLibary/obj/Debug/CoreCompileInputs.cache
new file mode 100644
index 0000000..f5fea0b
--- /dev/null
+++ b/csharp/db - demo -app/db-appLibary/obj/Debug/CoreCompileInputs.cache
@@ -0,0 +1 @@
+14ba4ef7b776c31f5ba06bf6aec3ad2ed80e3463
diff --git a/csharp/db - demo -app/db-appLibary/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/csharp/db - demo -app/db-appLibary/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache
new file mode 100644
index 0000000..b4f080c
Binary files /dev/null and b/csharp/db - demo -app/db-appLibary/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache differ
diff --git a/csharp/db - demo -app/db-appLibary/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs b/csharp/db - demo -app/db-appLibary/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs
new file mode 100644
index 0000000..e69de29
diff --git a/csharp/db - demo -app/db-appLibary/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs b/csharp/db - demo -app/db-appLibary/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs
new file mode 100644
index 0000000..e69de29
diff --git a/csharp/db - demo -app/db-appLibary/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs b/csharp/db - demo -app/db-appLibary/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs
new file mode 100644
index 0000000..e69de29
diff --git a/csharp/marketconnectionNET/marketconnectionNET.sln b/csharp/marketconnectionNET/marketconnectionNET.sln
new file mode 100644
index 0000000..3a64e80
--- /dev/null
+++ b/csharp/marketconnectionNET/marketconnectionNET.sln
@@ -0,0 +1,22 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 15
+VisualStudioVersion = 15.0.26403.7
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "marketconnectionNET", "marketconnectionNET\marketconnectionNET.csproj", "{25F26283-2288-4C4B-AAD1-4AB3453F7752}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {25F26283-2288-4C4B-AAD1-4AB3453F7752}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {25F26283-2288-4C4B-AAD1-4AB3453F7752}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {25F26283-2288-4C4B-AAD1-4AB3453F7752}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {25F26283-2288-4C4B-AAD1-4AB3453F7752}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/csharp/marketconnectionNET/marketconnectionNET/App.config b/csharp/marketconnectionNET/marketconnectionNET/App.config
new file mode 100644
index 0000000..7e40e94
--- /dev/null
+++ b/csharp/marketconnectionNET/marketconnectionNET/App.config
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/csharp/marketconnectionNET/marketconnectionNET/Dashboard.Designer.cs b/csharp/marketconnectionNET/marketconnectionNET/Dashboard.Designer.cs
new file mode 100644
index 0000000..e57f29b
--- /dev/null
+++ b/csharp/marketconnectionNET/marketconnectionNET/Dashboard.Designer.cs
@@ -0,0 +1,86 @@
+namespace marketconnectionNET
+{
+ partial class Dashboard
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.locationbox = new System.Windows.Forms.ListBox();
+ this.LocationName = new System.Windows.Forms.TextBox();
+ this.search = new System.Windows.Forms.Button();
+ this.SuspendLayout();
+ //
+ // locationbox
+ //
+ this.locationbox.FormattingEnabled = true;
+ this.locationbox.ItemHeight = 16;
+ this.locationbox.Location = new System.Drawing.Point(12, 79);
+ this.locationbox.Name = "locationbox";
+ this.locationbox.Size = new System.Drawing.Size(120, 84);
+ this.locationbox.TabIndex = 0;
+ //
+ // LocationName
+ //
+ this.LocationName.Location = new System.Drawing.Point(12, 28);
+ this.LocationName.Name = "LocationName";
+ this.LocationName.Size = new System.Drawing.Size(100, 22);
+ this.LocationName.TabIndex = 1;
+ this.LocationName.Text = "LocationName";
+ this.LocationName.Click += new System.EventHandler(this.search_Click);
+ this.LocationName.TextChanged += new System.EventHandler(this.search_Click);
+ //
+ // search
+ //
+ this.search.Location = new System.Drawing.Point(139, 139);
+ this.search.Name = "search";
+ this.search.Size = new System.Drawing.Size(75, 23);
+ this.search.TabIndex = 2;
+ this.search.Text = "search";
+ this.search.UseVisualStyleBackColor = true;
+ this.search.Click += new System.EventHandler(this.search_Click);
+ //
+ // Dashboard
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(506, 278);
+ this.Controls.Add(this.search);
+ this.Controls.Add(this.LocationName);
+ this.Controls.Add(this.locationbox);
+ this.Name = "Dashboard";
+ this.Text = "CastStudy";
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.ListBox locationbox;
+ private System.Windows.Forms.TextBox LocationName;
+ private System.Windows.Forms.Button search;
+ }
+}
\ No newline at end of file
diff --git a/csharp/marketconnectionNET/marketconnectionNET/Dashboard.cs b/csharp/marketconnectionNET/marketconnectionNET/Dashboard.cs
new file mode 100644
index 0000000..53bbf78
--- /dev/null
+++ b/csharp/marketconnectionNET/marketconnectionNET/Dashboard.cs
@@ -0,0 +1,40 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace marketconnectionNET
+{
+ public partial class Dashboard : Form
+ {
+ List city = new List();
+ public Dashboard()
+ {
+ InitializeComponent();
+
+ UpdateBinding();
+
+ }
+
+ private void UpdateBinding()
+ {
+ locationbox.DataSource = city;
+ locationbox.DisplayMember = "FullInfo";
+ }
+
+ private void search_Click(object sender, EventArgs e)
+ {
+ dataaccess db = new dataaccess();
+
+ city = db.GetLocations(LocationName.Text);
+
+ UpdateBinding();
+ }
+ }
+
+}
diff --git a/csharp/marketconnectionNET/marketconnectionNET/Dashboard.resx b/csharp/marketconnectionNET/marketconnectionNET/Dashboard.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/csharp/marketconnectionNET/marketconnectionNET/Dashboard.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/csharp/marketconnectionNET/marketconnectionNET/Properties/AssemblyInfo.cs b/csharp/marketconnectionNET/marketconnectionNET/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..416507d
--- /dev/null
+++ b/csharp/marketconnectionNET/marketconnectionNET/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("marketconnectionNET")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("marketconnectionNET")]
+[assembly: AssemblyCopyright("Copyright © 2017")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("25f26283-2288-4c4b-aad1-4ab3453f7752")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/csharp/marketconnectionNET/marketconnectionNET/bin/Debug/Dapper.dll b/csharp/marketconnectionNET/marketconnectionNET/bin/Debug/Dapper.dll
new file mode 100644
index 0000000..ba449d4
Binary files /dev/null and b/csharp/marketconnectionNET/marketconnectionNET/bin/Debug/Dapper.dll differ
diff --git a/csharp/marketconnectionNET/marketconnectionNET/bin/Debug/Dapper.xml b/csharp/marketconnectionNET/marketconnectionNET/bin/Debug/Dapper.xml
new file mode 100644
index 0000000..52f064f
--- /dev/null
+++ b/csharp/marketconnectionNET/marketconnectionNET/bin/Debug/Dapper.xml
@@ -0,0 +1,1952 @@
+
+
+
+ Dapper
+
+
+
+
+ Represents the key aspects of a sql operation
+
+
+
+
+ The command (sql or a stored-procedure name) to execute
+
+
+
+
+ The parameters associated with the command
+
+
+
+
+ The active transaction for the command
+
+
+
+
+ The effective timeout for the command
+
+
+
+
+ The type of command that the command-text represents
+
+
+
+
+ Should data be buffered before returning?
+
+
+
+
+ Should the plan for this query be cached?
+
+
+
+
+ Additional state flags against this command
+
+
+
+
+ Can async queries be pipelined?
+
+
+
+
+ Initialize the command definition
+
+
+
+
+ For asynchronous operations, the cancellation-token
+
+
+
+
+ Additional state flags that control command behaviour
+
+
+
+
+ No additional flags
+
+
+
+
+ Should data be buffered before returning?
+
+
+
+
+ Can async queries be pipelined?
+
+
+
+
+ Should the plan cache be bypassed?
+
+
+
+
+ Implements custom property mapping by user provided criteria (usually presence of some custom attribute with column to member mapping)
+
+
+
+
+ Creates custom property mapping
+
+ Target entity type
+ Property selector based on target type and DataReader column name
+
+
+
+ Always returns default constructor
+
+ DataReader column names
+ DataReader column types
+ Default constructor
+
+
+
+ Always returns null
+
+
+
+
+
+ Not implemented as far as default constructor used for all cases
+
+
+
+
+
+
+
+ Returns property based on selector strategy
+
+ DataReader column name
+ Poperty member map
+
+
+
+ This class represents a SQL string, it can be used if you need to denote your parameter is a Char vs VarChar vs nVarChar vs nChar
+
+
+
+
+ Default value for IsAnsi.
+
+
+
+
+ A value to set the default value of strings
+ going through Dapper. Default is 4000, any value larger than this
+ field will not have the default value applied.
+
+
+
+
+ Create a new DbString
+
+
+
+
+ Ansi vs Unicode
+
+
+
+
+ Fixed length
+
+
+
+
+ Length of the string -1 for max
+
+
+
+
+ The value of the string
+
+
+
+
+ Add the parameter to the command... internal use only
+
+
+
+
+
+
+ Represents default type mapping strategy used by Dapper
+
+
+
+
+ Creates default type map
+
+ Entity type
+
+
+
+ Finds best constructor
+
+ DataReader column names
+ DataReader column types
+ Matching constructor or default one
+
+
+
+ Returns the constructor, if any, that has the ExplicitConstructorAttribute on it.
+
+
+
+
+ Gets mapping for constructor parameter
+
+ Constructor to resolve
+ DataReader column name
+ Mapping implementation
+
+
+
+ Gets member mapping for column
+
+ DataReader column name
+ Mapping implementation
+
+
+
+ Should column names like User_Id be allowed to match properties/fields like UserId ?
+
+
+
+
+ The settable properties for this typemap
+
+
+
+
+ A bag of parameters that can be passed to the Dapper Query and Execute methods
+
+
+
+
+ construct a dynamic parameter bag
+
+
+
+
+ construct a dynamic parameter bag
+
+ can be an anonymous type or a DynamicParameters bag
+
+
+
+ Append a whole object full of params to the dynamic
+ EG: AddDynamicParams(new {A = 1, B = 2}) // will add property A and B to the dynamic
+
+
+
+
+
+ Add a parameter to this dynamic parameter list
+
+
+
+
+ Add a parameter to this dynamic parameter list
+
+
+
+
+ If true, the command-text is inspected and only values that are clearly used are included on the connection
+
+
+
+
+ Add all the parameters needed to the command just before it executes
+
+ The raw command prior to execution
+ Information about the query
+
+
+
+ All the names of the param in the bag, use Get to yank them out
+
+
+
+
+ Get the value of a parameter
+
+
+
+ The value, note DBNull.Value is not returned, instead the value is returned as null
+
+
+
+ Allows you to automatically populate a target property/field from output parameters. It actually
+ creates an InputOutput parameter, so you can still pass data in.
+
+
+ The object whose property/field you wish to populate.
+ A MemberExpression targeting a property/field of the target (or descendant thereof.)
+
+ The size to set on the parameter. Defaults to 0, or DbString.DefaultLength in case of strings.
+ The DynamicParameters instance
+
+
+
+ Tell Dapper to use an explicit constructor, passing nulls or 0s for all parameters
+
+
+
+
+ Handles variances in features per DBMS
+
+
+
+
+ Gets the feature set based on the passed connection
+
+
+
+
+ True if the db supports array columns e.g. Postgresql
+
+
+
+
+ Represents simple member map for one of target parameter or property or field to source DataReader column
+
+
+
+
+ Creates instance for simple property mapping
+
+ DataReader column name
+ Target property
+
+
+
+ Creates instance for simple field mapping
+
+ DataReader column name
+ Target property
+
+
+
+ Creates instance for simple constructor parameter mapping
+
+ DataReader column name
+ Target constructor parameter
+
+
+
+ DataReader column name
+
+
+
+
+ Target member type
+
+
+
+
+ Target property
+
+
+
+
+ Target field
+
+
+
+
+ Target constructor parameter
+
+
+
+
+ Used to pass a IEnumerable<SqlDataRecord> as a SqlDataRecordListTVPParameter
+
+
+
+
+ Create a new instance of SqlDataRecordListTVPParameter
+
+
+
+
+ Dapper, a light weight object mapper for ADO.NET
+
+
+
+
+ Execute a query asynchronously using .NET 4.5 Task.
+
+ Note: each row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Execute a query asynchronously using .NET 4.5 Task.
+
+ Note: each row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Execute a single-row query asynchronously using .NET 4.5 Task.
+
+ Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Execute a single-row query asynchronously using .NET 4.5 Task.
+
+ Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Execute a single-row query asynchronously using .NET 4.5 Task.
+
+ Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Execute a single-row query asynchronously using .NET 4.5 Task.
+
+ Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Execute a query asynchronously using .NET 4.5 Task.
+
+
+
+
+ Execute a single-row query asynchronously using .NET 4.5 Task.
+
+
+
+
+ Execute a single-row query asynchronously using .NET 4.5 Task.
+
+
+
+
+ Execute a single-row query asynchronously using .NET 4.5 Task.
+
+
+
+
+ Execute a single-row query asynchronously using .NET 4.5 Task.
+
+
+
+
+ Execute a query asynchronously using .NET 4.5 Task.
+
+
+
+
+ Execute a single-row query asynchronously using .NET 4.5 Task.
+
+
+
+
+ Execute a single-row query asynchronously using .NET 4.5 Task.
+
+
+
+
+ Execute a single-row query asynchronously using .NET 4.5 Task.
+
+
+
+
+ Execute a single-row query asynchronously using .NET 4.5 Task.
+
+
+
+
+ Execute a query asynchronously using .NET 4.5 Task.
+
+
+
+
+ Execute a query asynchronously using .NET 4.5 Task.
+
+
+
+
+ Execute a single-row query asynchronously using .NET 4.5 Task.
+
+
+
+
+ Execute a single-row query asynchronously using .NET 4.5 Task.
+
+
+
+
+ Execute a single-row query asynchronously using .NET 4.5 Task.
+
+
+
+
+ Execute a single-row query asynchronously using .NET 4.5 Task.
+
+
+
+
+ Execute a command asynchronously using .NET 4.5 Task.
+
+
+
+
+ Execute a command asynchronously using .NET 4.5 Task.
+
+
+
+
+ Maps a query to objects
+
+ The first type in the recordset
+ The second type in the recordset
+ The return type
+
+
+
+
+
+
+ The field we should split and read the second object from (default: id)
+ Number of seconds before command execution timeout
+ Is it a stored proc or a batch?
+
+
+
+
+ Maps a query to objects
+
+ The first type in the recordset
+ The second type in the recordset
+ The return type
+
+ The field we should split and read the second object from (default: id)
+ The command to execute
+
+
+
+
+
+ Maps a query to objects
+
+
+
+
+
+
+
+
+
+
+
+ The Field we should split and read the second object from (default: id)
+ Number of seconds before command execution timeout
+
+
+
+
+
+ Maps a query to objects
+
+
+
+
+
+
+ The field we should split and read the second object from (default: id)
+ The command to execute
+
+
+
+
+
+ Perform a multi mapping query with 4 input parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Perform a multi mapping query with 4 input parameters
+
+
+
+
+
+
+
+ The field we should split and read the second object from (default: id)
+ The command to execute
+
+
+
+
+
+ Perform a multi mapping query with 5 input parameters
+
+
+
+
+ Perform a multi mapping query with 5 input parameters
+
+
+
+
+ Perform a multi mapping query with 6 input parameters
+
+
+
+
+ Perform a multi mapping query with 6 input parameters
+
+
+
+
+ Perform a multi mapping query with 7 input parameters
+
+
+
+
+ Perform a multi mapping query with 7 input parameters
+
+
+
+
+ Perform a multi mapping query with arbitrary input parameters
+
+ The return type
+
+
+ array of types in the recordset
+
+
+
+
+ The Field we should split and read the second object from (default: id)
+ Number of seconds before command execution timeout
+ Is it a stored proc or a batch?
+
+
+
+
+ Execute a command that returns multiple result sets, and access each in turn
+
+
+
+
+ Execute a command that returns multiple result sets, and access each in turn
+
+
+
+
+ Execute parameterized SQL and return an
+
+ An that can be used to iterate over the results of the SQL query.
+
+ This is typically used when the results of a query are not processed by Dapper, for example, used to fill a
+ or .
+
+
+
+
+
+
+
+
+
+ Execute parameterized SQL and return an
+
+ An that can be used to iterate over the results of the SQL query.
+
+ This is typically used when the results of a query are not processed by Dapper, for example, used to fill a
+ or .
+
+
+
+
+ Execute parameterized SQL that selects a single value
+
+ The first cell selected
+
+
+
+ Execute parameterized SQL that selects a single value
+
+ The first cell selected
+
+
+
+ Execute parameterized SQL that selects a single value
+
+ The first cell selected
+
+
+
+ Execute parameterized SQL that selects a single value
+
+ The first cell selected
+
+
+
+ Called if the query cache is purged via PurgeQueryCache
+
+
+
+
+ Purge the query cache
+
+
+
+
+ Return a count of all the cached queries by dapper
+
+
+
+
+
+ Return a list of all the queries cached by dapper
+
+
+
+
+
+
+ Deep diagnostics only: find any hash collisions in the cache
+
+
+
+
+
+ Clear the registered type handlers
+
+
+
+
+ Configure the specified type to be mapped to a given db-type
+
+
+
+
+ Configure the specified type to be processed by a custom handler
+
+
+
+
+ Configure the specified type to be processed by a custom handler
+
+
+
+
+ Configure the specified type to be processed by a custom handler
+
+
+
+
+ Get the DbType that maps to a given value
+
+
+
+
+ OBSOLETE: For internal usage only. Lookup the DbType and handler for a given Type and member
+
+
+
+
+ Obtains the data as a list; if it is *already* a list, the original object is returned without
+ any duplication; otherwise, ToList() is invoked.
+
+
+
+
+ Execute parameterized SQL
+
+ Number of rows affected
+
+
+
+ Execute parameterized SQL
+
+ Number of rows affected
+
+
+
+ Execute parameterized SQL that selects a single value
+
+ The first cell selected
+
+
+
+ Execute parameterized SQL that selects a single value
+
+ The first cell selected
+
+
+
+ Execute parameterized SQL that selects a single value
+
+ The first cell selected
+
+
+
+ Execute parameterized SQL that selects a single value
+
+ The first cell selected
+
+
+
+ Execute parameterized SQL and return an
+
+ An that can be used to iterate over the results of the SQL query.
+
+ This is typically used when the results of a query are not processed by Dapper, for example, used to fill a
+ or .
+
+
+
+
+
+
+
+
+
+ Execute parameterized SQL and return an
+
+ An that can be used to iterate over the results of the SQL query.
+
+ This is typically used when the results of a query are not processed by Dapper, for example, used to fill a
+ or .
+
+
+
+
+ Execute parameterized SQL and return an
+
+ An that can be used to iterate over the results of the SQL query.
+
+ This is typically used when the results of a query are not processed by Dapper, for example, used to fill a
+ or .
+
+
+
+
+ Return a sequence of dynamic objects with properties matching the columns
+
+ Note: each row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Return a dynamic object with properties matching the columns
+
+ Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Return a dynamic object with properties matching the columns
+
+ Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Return a dynamic object with properties matching the columns
+
+ Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Return a dynamic object with properties matching the columns
+
+ Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Executes a query, returning the data typed as per T
+
+ A sequence of data of the supplied type; if a basic type (int, string, etc) is queried then the data from the first column in assumed, otherwise an instance is
+ created per row, and a direct column-name===member-name mapping is assumed (case insensitive).
+
+
+
+
+ Executes a single-row query, returning the data typed as per T
+
+ A sequence of data of the supplied type; if a basic type (int, string, etc) is queried then the data from the first column in assumed, otherwise an instance is
+ created per row, and a direct column-name===member-name mapping is assumed (case insensitive).
+
+
+
+
+ Executes a single-row query, returning the data typed as per T
+
+ A sequence of data of the supplied type; if a basic type (int, string, etc) is queried then the data from the first column in assumed, otherwise an instance is
+ created per row, and a direct column-name===member-name mapping is assumed (case insensitive).
+
+
+
+
+ Executes a single-row query, returning the data typed as per T
+
+ A sequence of data of the supplied type; if a basic type (int, string, etc) is queried then the data from the first column in assumed, otherwise an instance is
+ created per row, and a direct column-name===member-name mapping is assumed (case insensitive).
+
+
+
+
+ Executes a single-row query, returning the data typed as per T
+
+ A sequence of data of the supplied type; if a basic type (int, string, etc) is queried then the data from the first column in assumed, otherwise an instance is
+ created per row, and a direct column-name===member-name mapping is assumed (case insensitive).
+
+
+
+
+ Executes a single-row query, returning the data typed as per the Type suggested
+
+ A sequence of data of the supplied type; if a basic type (int, string, etc) is queried then the data from the first column in assumed, otherwise an instance is
+ created per row, and a direct column-name===member-name mapping is assumed (case insensitive).
+
+
+
+
+ Executes a single-row query, returning the data typed as per the Type suggested
+
+ A sequence of data of the supplied type; if a basic type (int, string, etc) is queried then the data from the first column in assumed, otherwise an instance is
+ created per row, and a direct column-name===member-name mapping is assumed (case insensitive).
+
+
+
+
+ Executes a single-row query, returning the data typed as per the Type suggested
+
+ A sequence of data of the supplied type; if a basic type (int, string, etc) is queried then the data from the first column in assumed, otherwise an instance is
+ created per row, and a direct column-name===member-name mapping is assumed (case insensitive).
+
+
+
+
+ Executes a single-row query, returning the data typed as per the Type suggested
+
+ A sequence of data of the supplied type; if a basic type (int, string, etc) is queried then the data from the first column in assumed, otherwise an instance is
+ created per row, and a direct column-name===member-name mapping is assumed (case insensitive).
+
+
+
+
+ Executes a single-row query, returning the data typed as per the Type suggested
+
+ A sequence of data of the supplied type; if a basic type (int, string, etc) is queried then the data from the first column in assumed, otherwise an instance is
+ created per row, and a direct column-name===member-name mapping is assumed (case insensitive).
+
+
+
+
+ Executes a query, returning the data typed as per T
+
+ the dynamic param may seem a bit odd, but this works around a major usability issue in vs, if it is Object vs completion gets annoying. Eg type new [space] get new object
+ A sequence of data of the supplied type; if a basic type (int, string, etc) is queried then the data from the first column in assumed, otherwise an instance is
+ created per row, and a direct column-name===member-name mapping is assumed (case insensitive).
+
+
+
+
+ Executes a query, returning the data typed as per T
+
+ the dynamic param may seem a bit odd, but this works around a major usability issue in vs, if it is Object vs completion gets annoying. Eg type new [space] get new object
+ A single instance or null of the supplied type; if a basic type (int, string, etc) is queried then the data from the first column in assumed, otherwise an instance is
+ created per row, and a direct column-name===member-name mapping is assumed (case insensitive).
+
+
+
+
+ Executes a query, returning the data typed as per T
+
+ the dynamic param may seem a bit odd, but this works around a major usability issue in vs, if it is Object vs completion gets annoying. Eg type new [space] get new object
+ A single or null instance of the supplied type; if a basic type (int, string, etc) is queried then the data from the first column in assumed, otherwise an instance is
+ created per row, and a direct column-name===member-name mapping is assumed (case insensitive).
+
+
+
+
+ Executes a query, returning the data typed as per T
+
+ the dynamic param may seem a bit odd, but this works around a major usability issue in vs, if it is Object vs completion gets annoying. Eg type new [space] get new object
+ A single instance of the supplied type; if a basic type (int, string, etc) is queried then the data from the first column in assumed, otherwise an instance is
+ created per row, and a direct column-name===member-name mapping is assumed (case insensitive).
+
+
+
+
+ Executes a query, returning the data typed as per T
+
+ the dynamic param may seem a bit odd, but this works around a major usability issue in vs, if it is Object vs completion gets annoying. Eg type new [space] get new object
+ A single instance of the supplied type; if a basic type (int, string, etc) is queried then the data from the first column in assumed, otherwise an instance is
+ created per row, and a direct column-name===member-name mapping is assumed (case insensitive).
+
+
+
+
+ Execute a command that returns multiple result sets, and access each in turn
+
+
+
+
+ Execute a command that returns multiple result sets, and access each in turn
+
+
+
+
+ Maps a query to objects
+
+ The first type in the record set
+ The second type in the record set
+ The return type
+
+
+
+
+
+
+ The Field we should split and read the second object from (default: id)
+ Number of seconds before command execution timeout
+ Is it a stored proc or a batch?
+
+
+
+
+ Maps a query to objects
+
+
+
+
+
+
+
+
+
+
+
+ The Field we should split and read the second object from (default: id)
+ Number of seconds before command execution timeout
+
+
+
+
+
+ Perform a multi mapping query with 4 input parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Perform a multi mapping query with 5 input parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Perform a multi mapping query with 6 input parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Perform a multi mapping query with 7 input parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Perform a multi mapping query with arbitrary input parameters
+
+ The return type
+
+
+ array of types in the record set
+
+
+
+
+ The Field we should split and read the second object from (default: id)
+ Number of seconds before command execution timeout
+ Is it a stored proc or a batch?
+
+
+
+
+ Internal use only
+
+
+
+
+
+
+ Internal use only
+
+
+
+
+ Internal use only
+
+
+
+
+ Internal use only
+
+
+
+
+ OBSOLETE: For internal usage only. Sanitizes the paramter value with proper type casting.
+
+
+
+
+ Replace all literal tokens with their text form
+
+
+
+
+ Convert numeric values to their string form for SQL literal purposes
+
+
+
+
+ Internal use only
+
+
+
+
+ Gets type-map for the given type
+
+ Type map instance, default is to create new instance of DefaultTypeMap
+
+
+
+ Gets type-map for the given type
+
+ Type map implementation, DefaultTypeMap instance if no override present
+
+
+
+ Set custom mapping for type deserializers
+
+ Entity type to override
+ Mapping rules impementation, null to remove custom map
+
+
+
+ Internal use only
+
+
+
+
+
+
+
+
+
+
+ Throws a data exception, only used internally
+
+
+
+
+ How should connection strings be compared for equivalence? Defaults to StringComparer.Ordinal.
+ Providing a custom implementation can be useful for allowing multi-tenancy databases with identical
+ schema to share strategies. Note that usual equivalence rules apply: any equivalent connection strings
+ MUST yield the same hash-code.
+
+
+
+
+ Key used to indicate the type name associated with a DataTable
+
+
+
+
+ Used to pass a DataTable as a TableValuedParameter
+
+
+
+
+ Associate a DataTable with a type name
+
+
+
+
+ Fetch the type name associated with a DataTable
+
+
+
+
+ Used to pass a IEnumerable<SqlDataRecord> as a TableValuedParameter
+
+
+
+
+ Dummy type for excluding from multi-map
+
+
+
+
+ The grid reader provides interfaces for reading multiple result sets from a Dapper query
+
+
+
+
+ Read the next grid of results, returned as a dynamic object
+
+ Note: each row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Read an individual row of the next grid of results, returned as a dynamic object
+
+ Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Read an individual row of the next grid of results, returned as a dynamic object
+
+ Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Read an individual row of the next grid of results, returned as a dynamic object
+
+ Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Read an individual row of the next grid of results, returned as a dynamic object
+
+ Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Read the next grid of results
+
+
+
+
+ Read an individual row of the next grid of results
+
+
+
+
+ Read an individual row of the next grid of results
+
+
+
+
+ Read an individual row of the next grid of results
+
+
+
+
+ Read an individual row of the next grid of results
+
+
+
+
+ Read the next grid of results
+
+
+
+
+ Read an individual row of the next grid of results
+
+
+
+
+ Read an individual row of the next grid of results
+
+
+
+
+ Read an individual row of the next grid of results
+
+
+
+
+ Read an individual row of the next grid of results
+
+
+
+
+ Read the next grid of results, returned as a dynamic object
+
+ Note: each row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Read an individual row of the next grid of results, returned as a dynamic object
+
+ Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Read an individual row of the next grid of results, returned as a dynamic object
+
+ Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Read an individual row of the next grid of results, returned as a dynamic object
+
+ Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Read an individual row of the next grid of results, returned as a dynamic object
+
+ Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Read the next grid of results
+
+
+
+
+ Read an individual row of the next grid of results
+
+
+
+
+ Read an individual row of the next grid of results
+
+
+
+
+ Read an individual row of the next grid of results
+
+
+
+
+ Read an individual row of the next grid of results
+
+
+
+
+ Read the next grid of results
+
+
+
+
+ Read an individual row of the next grid of results
+
+
+
+
+ Read an individual row of the next grid of results
+
+
+
+
+ Read an individual row of the next grid of results
+
+
+
+
+ Read an individual row of the next grid of results
+
+
+
+
+ Read multiple objects from a single record set on the grid
+
+
+
+
+ Read multiple objects from a single record set on the grid
+
+
+
+
+ Read multiple objects from a single record set on the grid
+
+
+
+
+ Read multiple objects from a single record set on the grid
+
+
+
+
+ Read multiple objects from a single record set on the grid
+
+
+
+
+ Read multiple objects from a single record set on the grid
+
+
+
+
+ Read multiple objects from a single record set on the grid
+
+
+
+
+ Has the underlying reader been consumed?
+
+
+
+
+ The command associated with the reader
+
+
+
+
+ Dispose the grid, closing and disposing both the underlying reader and command.
+
+
+
+
+ Implement this interface to pass an arbitrary db specific parameter to Dapper
+
+
+
+
+ Add the parameter needed to the command before it executes
+
+ The raw command prior to execution
+ Parameter name
+
+
+
+ Parses a data reader to a sequence of data of the supplied type. Used for deserializing a reader without a connection, etc.
+
+
+
+
+ Parses a data reader to a sequence of data of the supplied type (as object). Used for deserializing a reader without a connection, etc.
+
+
+
+
+ Parses a data reader to a sequence of dynamic. Used for deserializing a reader without a connection, etc.
+
+
+
+
+ Gets the row parser for a specific row on a data reader. This allows for type switching every row based on, for example, a TypeId column.
+ You could return a collection of the base type but have each more specific.
+
+ The data reader to get the parser for the current row from
+ The type to get the parser for
+ The start column index of the object (default 0)
+ The length of columns to read (default -1 = all fields following startIndex)
+ Return null if we can't find the first column? (default false)
+ A parser for this specific object from this row.
+
+
+
+ Gets the row parser for a specific row on a data reader. This allows for type switching every row based on, for example, a TypeId column.
+ You could return a collection of the base type but have each more specific.
+
+ The data reader to get the parser for the current row from
+ The type to get the parser for
+ The start column index of the object (default 0)
+ The length of columns to read (default -1 = all fields following startIndex)
+ Return null if we can't find the first column? (default false)
+ A parser for this specific object from this row.
+
+ var result = new List<BaseType>();
+ using (var reader = connection.ExecuteReader(@"
+ select 'abc' as Name, 1 as Type, 3.0 as Value
+ union all
+ select 'def' as Name, 2 as Type, 4.0 as Value"))
+ {
+ if (reader.Read())
+ {
+ var toFoo = reader.GetRowParser<BaseType>(typeof(Foo));
+ var toBar = reader.GetRowParser<BaseType>(typeof(Bar));
+ var col = reader.GetOrdinal("Type");
+ do
+ {
+ switch (reader.GetInt32(col))
+ {
+ case 1:
+ result.Add(toFoo(reader));
+ break;
+ case 2:
+ result.Add(toBar(reader));
+ break;
+ }
+ } while (reader.Read());
+ }
+ }
+
+ abstract class BaseType
+ {
+ public abstract int Type { get; }
+ }
+ class Foo : BaseType
+ {
+ public string Name { get; set; }
+ public override int Type => 1;
+ }
+ class Bar : BaseType
+ {
+ public float Value { get; set; }
+ public override int Type => 2;
+ }
+
+
+
+
+ Identity of a cached query in Dapper, used for extensibility
+
+
+
+
+ Create an identity for use with DynamicParameters, internal use only
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The sql
+
+
+
+
+ The command type
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Compare 2 Identity objects
+
+
+
+
+
+
+ Implement this interface to pass an arbitrary db specific set of parameters to Dapper
+
+
+
+
+ Add all the parameters needed to the command just before it executes
+
+ The raw command prior to execution
+ Information about the query
+
+
+
+ Implements this interface to provide custom member mapping
+
+
+
+
+ Source DataReader column name
+
+
+
+
+ Target member type
+
+
+
+
+ Target property
+
+
+
+
+ Target field
+
+
+
+
+ Target constructor parameter
+
+
+
+
+ Extends IDynamicParameters with facilities for executing callbacks after commands have completed
+
+
+
+
+ Invoked when the command has executed
+
+
+
+
+ Extends IDynamicParameters providing by-name lookup of parameter values
+
+
+
+
+ Get the value of the specified parameter (return null if not found)
+
+
+
+
+ Implement this interface to perform custom type-based parameter handling and value parsing
+
+
+
+
+ Assign the value of a parameter before a command executes
+
+ The parameter to configure
+ Parameter value
+
+
+
+ Parse a database value back to a typed value
+
+ The value from the database
+ The type to parse to
+ The typed value
+
+
+
+ Implement this interface to change default mapping of reader columns to type members
+
+
+
+
+ Finds best constructor
+
+ DataReader column names
+ DataReader column types
+ Matching constructor or default one
+
+
+
+ Returns a constructor which should *always* be used.
+
+ Parameters will be default values, nulls for reference types and zero'd for value types.
+
+ Use this class to force object creation away from parameterless constructors you don't control.
+
+
+
+
+ Gets mapping for constructor parameter
+
+ Constructor to resolve
+ DataReader column name
+ Mapping implementation
+
+
+
+ Gets member mapping for column
+
+ DataReader column name
+ Mapping implementation
+
+
+
+ This is a micro-cache; suitable when the number of terms is controllable (a few hundred, for example),
+ and strictly append-only; you cannot change existing values. All key matches are on **REFERENCE**
+ equality. The type is fully thread-safe.
+
+
+
+
+ Represents a placeholder for a value that should be replaced as a literal value in the resulting sql
+
+
+
+
+ The text in the original command that should be replaced
+
+
+
+
+ The name of the member referred to by the token
+
+
+
+
+ Permits specifying certain SqlMapper values globally.
+
+
+
+
+ Resets all Settings to their default values
+
+
+
+
+ Specifies the default Command Timeout for all Queries
+
+
+
+
+ Indicates whether nulls in data are silently ignored (default) vs actively applied and assigned to members
+
+
+
+
+ Should list expansions be padded with null-valued parameters, to prevent query-plan saturation? For example,
+ an 'in @foo' expansion with 7, 8 or 9 values will be sent as a list of 10 values, with 3, 2 or 1 of them null.
+ The padding size is relative to the size of the list; "next 10" under 150, "next 50" under 500,
+ "next 100" under 1500, etc.
+
+
+ Caution: this should be treated with care if your DB provider (or the specific configuration) allows for null
+ equality (aka "ansi nulls off"), as this may change the intent of your query; as such, this is disabled by
+ default and must be enabled.
+
+
+
+
+ If set (non-negative), when performing in-list expansions of integer types ("where id in @ids", etc), switch to a string_split based
+ operation if there are more than this many elements. Note that this feautre requires SQL Server 2016 / compatibility level 130 (or above).
+
+
+
+
+ Base-class for simple type-handlers
+
+
+
+
+ Assign the value of a parameter before a command executes
+
+ The parameter to configure
+ Parameter value
+
+
+
+ Parse a database value back to a typed value
+
+ The value from the database
+ The typed value
+
+
+
+ Base-class for simple type-handlers that are based around strings
+
+
+
+
+ Parse a string into the expected type (the string will never be null)
+
+
+
+
+ Format an instace into a string (the instance will never be null)
+
+
+
+
+ Assign the value of a parameter before a command executes
+
+ The parameter to configure
+ Parameter value
+
+
+
+ Parse a database value back to a typed value
+
+ The value from the database
+ The typed value
+
+
+
+ Not intended for direct usage
+
+
+
+
+ Not intended for direct usage
+
+
+
+
+ Not intended for direct usage
+
+
+
+
+ A type handler for data-types that are supported by the underlying provider, but which need
+ a well-known UdtTypeName to be specified
+
+
+
+
+ Creates a new instance of UdtTypeHandler with the specified UdtTypeName
+
+
+
+
+ Used to pass a DataTable as a TableValuedParameter
+
+
+
+
+ Create a new instance of TableValuedParameter
+
+
+
+
+ Create a new instance of TableValuedParameter
+
+
+
+
+ Describes a reader that controls the lifetime of both a command and a reader,
+ exposing the downstream command/reader as properties.
+
+
+
+
+ Obtain the underlying reader
+
+
+
+
+ Obtain the underlying command
+
+
+
+
diff --git a/csharp/marketconnectionNET/marketconnectionNET/bin/Debug/marketconnectionNET.exe b/csharp/marketconnectionNET/marketconnectionNET/bin/Debug/marketconnectionNET.exe
new file mode 100644
index 0000000..fd75208
Binary files /dev/null and b/csharp/marketconnectionNET/marketconnectionNET/bin/Debug/marketconnectionNET.exe differ
diff --git a/csharp/marketconnectionNET/marketconnectionNET/bin/Debug/marketconnectionNET.exe.CodeAnalysisLog.xml b/csharp/marketconnectionNET/marketconnectionNET/bin/Debug/marketconnectionNET.exe.CodeAnalysisLog.xml
new file mode 100644
index 0000000..55f1dc2
--- /dev/null
+++ b/csharp/marketconnectionNET/marketconnectionNET/bin/Debug/marketconnectionNET.exe.CodeAnalysisLog.xml
@@ -0,0 +1,53 @@
+
+
+
+
+
+
+
+
+
+ Mark the entry point method 'Programm.Main(string[])' in assembly 'marketconnectionNET.exe' with an STAThreadAttribute.
+
+
+
+
+
+
+
+
+ Mark Windows Forms entry points with STAThread
+ Assemblies that reference System.Windows.Forms should have the STAThreadAttribute. Failure to apply this attribute will most likely result in an application that does not work. Windows Forms relies on a number of components that use the STA model.
+ Mark the entry point method {0} in assembly {1} with an STAThreadAttribute.
+
+ http://msdn.microsoft.com/library/ms182351.aspx
+ [none]
+ Error
+
+
+
+
+ Category
+ Certainty
+ Collapse All
+ Check Id
+ Error
+ error(s)
+ Expand All
+ Help
+ Line
+ message(s)
+ [Location not stored in Pdb]
+ Project
+ Resolution
+ Rule
+ Rule File
+ Rule Description
+ Source
+ Status
+ Target
+ Warning
+ warning(s)
+ Code Analysis Report
+
+
diff --git a/csharp/marketconnectionNET/marketconnectionNET/bin/Debug/marketconnectionNET.exe.config b/csharp/marketconnectionNET/marketconnectionNET/bin/Debug/marketconnectionNET.exe.config
new file mode 100644
index 0000000..e065e29
--- /dev/null
+++ b/csharp/marketconnectionNET/marketconnectionNET/bin/Debug/marketconnectionNET.exe.config
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/csharp/marketconnectionNET/marketconnectionNET/bin/Debug/marketconnectionNET.exe.lastcodeanalysissucceeded b/csharp/marketconnectionNET/marketconnectionNET/bin/Debug/marketconnectionNET.exe.lastcodeanalysissucceeded
new file mode 100644
index 0000000..e69de29
diff --git a/csharp/marketconnectionNET/marketconnectionNET/bin/Debug/marketconnectionNET.pdb b/csharp/marketconnectionNET/marketconnectionNET/bin/Debug/marketconnectionNET.pdb
new file mode 100644
index 0000000..1f04cc9
Binary files /dev/null and b/csharp/marketconnectionNET/marketconnectionNET/bin/Debug/marketconnectionNET.pdb differ
diff --git a/csharp/marketconnectionNET/marketconnectionNET/cities.cs b/csharp/marketconnectionNET/marketconnectionNET/cities.cs
new file mode 100644
index 0000000..61c05a0
--- /dev/null
+++ b/csharp/marketconnectionNET/marketconnectionNET/cities.cs
@@ -0,0 +1,26 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace marketconnectionNET
+{
+ public class cities
+ {
+ public int city_id { get; set; }
+ public string city_name { get; set; }
+ public int zip_code { get; set; }
+
+
+
+ public string FullInfo
+ {
+ get
+ {
+ return $"{ city_name } { zip_code } ";
+ }
+
+ }
+ }
+}
diff --git a/csharp/marketconnectionNET/marketconnectionNET/dataaccess.cs b/csharp/marketconnectionNET/marketconnectionNET/dataaccess.cs
new file mode 100644
index 0000000..f429271
--- /dev/null
+++ b/csharp/marketconnectionNET/marketconnectionNET/dataaccess.cs
@@ -0,0 +1,26 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Dapper;
+using System.Data;
+using System.Data.SqlClient;
+
+namespace marketconnectionNET
+{
+ public class dataaccess
+ {
+
+ public List GetLocations(string LocationName)
+ {
+ using (IDbConnection connection = new System.Data.SqlClient.SqlConnection(helper.CnnVal("marketdb")))
+ {
+
+ var output = connection.Query ($"select * from cities where city_name = '{ LocationName }'").ToList();
+ return output;
+
+ }
+ }
+ }
+}
diff --git a/csharp/marketconnectionNET/marketconnectionNET/helper.cs b/csharp/marketconnectionNET/marketconnectionNET/helper.cs
new file mode 100644
index 0000000..802e494
--- /dev/null
+++ b/csharp/marketconnectionNET/marketconnectionNET/helper.cs
@@ -0,0 +1,18 @@
+using System;
+using System.Collections.Generic;
+using System.Configuration;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace marketconnectionNET
+{
+ public static class helper
+ {
+ public static string CnnVal(string marketdb)
+ {
+ return ConfigurationManager.ConnectionStrings[marketdb].ConnectionString;
+ }
+
+ }
+}
diff --git a/csharp/marketconnectionNET/marketconnectionNET/marketconnectionNET.csproj b/csharp/marketconnectionNET/marketconnectionNET/marketconnectionNET.csproj
new file mode 100644
index 0000000..5173d34
--- /dev/null
+++ b/csharp/marketconnectionNET/marketconnectionNET/marketconnectionNET.csproj
@@ -0,0 +1,77 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {25F26283-2288-4C4B-AAD1-4AB3453F7752}
+ WinExe
+ marketconnectionNET
+ marketconnectionNET
+ v4.5.2
+ 512
+ true
+
+
+ AnyCPU
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ AnyCPU
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+
+
+
+
+
+ ..\packages\Dapper.1.50.2\lib\net451\Dapper.dll
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Form
+
+
+ Dashboard.cs
+
+
+
+
+
+
+
+
+
+
+
+
+ Dashboard.cs
+
+
+
+
\ No newline at end of file
diff --git a/csharp/marketconnectionNET/marketconnectionNET/obj/Debug/CoreCompileInputs.cache b/csharp/marketconnectionNET/marketconnectionNET/obj/Debug/CoreCompileInputs.cache
new file mode 100644
index 0000000..a9da512
--- /dev/null
+++ b/csharp/marketconnectionNET/marketconnectionNET/obj/Debug/CoreCompileInputs.cache
@@ -0,0 +1 @@
+734ee48575761c950000745219c57f0789d1b87b
diff --git a/csharp/marketconnectionNET/marketconnectionNET/obj/Debug/DesignTimeResolveAssemblyReferences.cache b/csharp/marketconnectionNET/marketconnectionNET/obj/Debug/DesignTimeResolveAssemblyReferences.cache
new file mode 100644
index 0000000..e42699a
Binary files /dev/null and b/csharp/marketconnectionNET/marketconnectionNET/obj/Debug/DesignTimeResolveAssemblyReferences.cache differ
diff --git a/csharp/marketconnectionNET/marketconnectionNET/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/csharp/marketconnectionNET/marketconnectionNET/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache
new file mode 100644
index 0000000..e2a94c8
Binary files /dev/null and b/csharp/marketconnectionNET/marketconnectionNET/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache differ
diff --git a/csharp/marketconnectionNET/marketconnectionNET/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs b/csharp/marketconnectionNET/marketconnectionNET/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs
new file mode 100644
index 0000000..e69de29
diff --git a/csharp/marketconnectionNET/marketconnectionNET/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs b/csharp/marketconnectionNET/marketconnectionNET/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs
new file mode 100644
index 0000000..e69de29
diff --git a/csharp/marketconnectionNET/marketconnectionNET/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs b/csharp/marketconnectionNET/marketconnectionNET/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs
new file mode 100644
index 0000000..e69de29
diff --git a/csharp/marketconnectionNET/marketconnectionNET/obj/Debug/marketconnectionNET.Dashboard.resources b/csharp/marketconnectionNET/marketconnectionNET/obj/Debug/marketconnectionNET.Dashboard.resources
new file mode 100644
index 0000000..6c05a97
Binary files /dev/null and b/csharp/marketconnectionNET/marketconnectionNET/obj/Debug/marketconnectionNET.Dashboard.resources differ
diff --git a/csharp/marketconnectionNET/marketconnectionNET/obj/Debug/marketconnectionNET.csproj.FileListAbsolute.txt b/csharp/marketconnectionNET/marketconnectionNET/obj/Debug/marketconnectionNET.csproj.FileListAbsolute.txt
new file mode 100644
index 0000000..9390e5a
--- /dev/null
+++ b/csharp/marketconnectionNET/marketconnectionNET/obj/Debug/marketconnectionNET.csproj.FileListAbsolute.txt
@@ -0,0 +1,11 @@
+C:\Users\Ismail\documents\visual studio 2017\Projects\marketconnectionNET\marketconnectionNET\bin\Debug\marketconnectionNET.pdb
+C:\Users\Ismail\documents\visual studio 2017\Projects\marketconnectionNET\marketconnectionNET\obj\Debug\marketconnectionNET.pdb
+C:\Users\Ismail\documents\visual studio 2017\Projects\marketconnectionNET\marketconnectionNET\bin\Debug\Dapper.dll
+C:\Users\Ismail\documents\visual studio 2017\Projects\marketconnectionNET\marketconnectionNET\bin\Debug\Dapper.xml
+C:\Users\Ismail\documents\visual studio 2017\Projects\marketconnectionNET\marketconnectionNET\obj\Debug\marketconnectionNET.Dashboard.resources
+C:\Users\Ismail\documents\visual studio 2017\Projects\marketconnectionNET\marketconnectionNET\obj\Debug\marketconnectionNET.csproj.GenerateResource.Cache
+C:\Users\Ismail\Documents\Visual Studio 2017\Projects\marketconnectionNET\marketconnectionNET\bin\Debug\marketconnectionNET.exe.config
+C:\Users\Ismail\Documents\Visual Studio 2017\Projects\marketconnectionNET\marketconnectionNET\bin\Debug\marketconnectionNET.exe
+C:\Users\Ismail\Documents\Visual Studio 2017\Projects\marketconnectionNET\marketconnectionNET\obj\Debug\marketconnectionNET.exe
+C:\Users\Ismail\Documents\Visual Studio 2017\Projects\marketconnectionNET\marketconnectionNET\bin\Debug\marketconnectionNET.exe.CodeAnalysisLog.xml
+C:\Users\Ismail\Documents\Visual Studio 2017\Projects\marketconnectionNET\marketconnectionNET\bin\Debug\marketconnectionNET.exe.lastcodeanalysissucceeded
diff --git a/csharp/marketconnectionNET/marketconnectionNET/obj/Debug/marketconnectionNET.csproj.GenerateResource.Cache b/csharp/marketconnectionNET/marketconnectionNET/obj/Debug/marketconnectionNET.csproj.GenerateResource.Cache
new file mode 100644
index 0000000..7f5489d
Binary files /dev/null and b/csharp/marketconnectionNET/marketconnectionNET/obj/Debug/marketconnectionNET.csproj.GenerateResource.Cache differ
diff --git a/csharp/marketconnectionNET/marketconnectionNET/obj/Debug/marketconnectionNET.exe b/csharp/marketconnectionNET/marketconnectionNET/obj/Debug/marketconnectionNET.exe
new file mode 100644
index 0000000..fd75208
Binary files /dev/null and b/csharp/marketconnectionNET/marketconnectionNET/obj/Debug/marketconnectionNET.exe differ
diff --git a/csharp/marketconnectionNET/marketconnectionNET/obj/Debug/marketconnectionNET.pdb b/csharp/marketconnectionNET/marketconnectionNET/obj/Debug/marketconnectionNET.pdb
new file mode 100644
index 0000000..1f04cc9
Binary files /dev/null and b/csharp/marketconnectionNET/marketconnectionNET/obj/Debug/marketconnectionNET.pdb differ
diff --git a/csharp/marketconnectionNET/marketconnectionNET/packages.config b/csharp/marketconnectionNET/marketconnectionNET/packages.config
new file mode 100644
index 0000000..cb48927
--- /dev/null
+++ b/csharp/marketconnectionNET/marketconnectionNET/packages.config
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/csharp/marketconnectionNET/packages/Dapper.1.50.2/Dapper.1.50.2.nupkg b/csharp/marketconnectionNET/packages/Dapper.1.50.2/Dapper.1.50.2.nupkg
new file mode 100644
index 0000000..c1fa0a8
Binary files /dev/null and b/csharp/marketconnectionNET/packages/Dapper.1.50.2/Dapper.1.50.2.nupkg differ
diff --git a/csharp/marketconnectionNET/packages/Dapper.1.50.2/lib/net40/Dapper.dll b/csharp/marketconnectionNET/packages/Dapper.1.50.2/lib/net40/Dapper.dll
new file mode 100644
index 0000000..d68becd
Binary files /dev/null and b/csharp/marketconnectionNET/packages/Dapper.1.50.2/lib/net40/Dapper.dll differ
diff --git a/csharp/marketconnectionNET/packages/Dapper.1.50.2/lib/net40/Dapper.xml b/csharp/marketconnectionNET/packages/Dapper.1.50.2/lib/net40/Dapper.xml
new file mode 100644
index 0000000..436db12
--- /dev/null
+++ b/csharp/marketconnectionNET/packages/Dapper.1.50.2/lib/net40/Dapper.xml
@@ -0,0 +1,1530 @@
+
+
+
+ Dapper
+
+
+
+
+ Represents the key aspects of a sql operation
+
+
+
+
+ The command (sql or a stored-procedure name) to execute
+
+
+
+
+ The parameters associated with the command
+
+
+
+
+ The active transaction for the command
+
+
+
+
+ The effective timeout for the command
+
+
+
+
+ The type of command that the command-text represents
+
+
+
+
+ Should data be buffered before returning?
+
+
+
+
+ Should the plan for this query be cached?
+
+
+
+
+ Additional state flags against this command
+
+
+
+
+ Can async queries be pipelined?
+
+
+
+
+ Initialize the command definition
+
+
+
+
+ Additional state flags that control command behaviour
+
+
+
+
+ No additional flags
+
+
+
+
+ Should data be buffered before returning?
+
+
+
+
+ Can async queries be pipelined?
+
+
+
+
+ Should the plan cache be bypassed?
+
+
+
+
+ Implements custom property mapping by user provided criteria (usually presence of some custom attribute with column to member mapping)
+
+
+
+
+ Creates custom property mapping
+
+ Target entity type
+ Property selector based on target type and DataReader column name
+
+
+
+ Always returns default constructor
+
+ DataReader column names
+ DataReader column types
+ Default constructor
+
+
+
+ Always returns null
+
+
+
+
+
+ Not implemented as far as default constructor used for all cases
+
+
+
+
+
+
+
+ Returns property based on selector strategy
+
+ DataReader column name
+ Poperty member map
+
+
+
+ This class represents a SQL string, it can be used if you need to denote your parameter is a Char vs VarChar vs nVarChar vs nChar
+
+
+
+
+ Default value for IsAnsi.
+
+
+
+
+ A value to set the default value of strings
+ going through Dapper. Default is 4000, any value larger than this
+ field will not have the default value applied.
+
+
+
+
+ Create a new DbString
+
+
+
+
+ Ansi vs Unicode
+
+
+
+
+ Fixed length
+
+
+
+
+ Length of the string -1 for max
+
+
+
+
+ The value of the string
+
+
+
+
+ Add the parameter to the command... internal use only
+
+
+
+
+
+
+ Represents default type mapping strategy used by Dapper
+
+
+
+
+ Creates default type map
+
+ Entity type
+
+
+
+ Finds best constructor
+
+ DataReader column names
+ DataReader column types
+ Matching constructor or default one
+
+
+
+ Returns the constructor, if any, that has the ExplicitConstructorAttribute on it.
+
+
+
+
+ Gets mapping for constructor parameter
+
+ Constructor to resolve
+ DataReader column name
+ Mapping implementation
+
+
+
+ Gets member mapping for column
+
+ DataReader column name
+ Mapping implementation
+
+
+
+ Should column names like User_Id be allowed to match properties/fields like UserId ?
+
+
+
+
+ The settable properties for this typemap
+
+
+
+
+ A bag of parameters that can be passed to the Dapper Query and Execute methods
+
+
+
+
+ construct a dynamic parameter bag
+
+
+
+
+ construct a dynamic parameter bag
+
+ can be an anonymous type or a DynamicParameters bag
+
+
+
+ Append a whole object full of params to the dynamic
+ EG: AddDynamicParams(new {A = 1, B = 2}) // will add property A and B to the dynamic
+
+
+
+
+
+ Add a parameter to this dynamic parameter list
+
+
+
+
+ Add a parameter to this dynamic parameter list
+
+
+
+
+ If true, the command-text is inspected and only values that are clearly used are included on the connection
+
+
+
+
+ Add all the parameters needed to the command just before it executes
+
+ The raw command prior to execution
+ Information about the query
+
+
+
+ All the names of the param in the bag, use Get to yank them out
+
+
+
+
+ Get the value of a parameter
+
+
+
+ The value, note DBNull.Value is not returned, instead the value is returned as null
+
+
+
+ Allows you to automatically populate a target property/field from output parameters. It actually
+ creates an InputOutput parameter, so you can still pass data in.
+
+
+ The object whose property/field you wish to populate.
+ A MemberExpression targeting a property/field of the target (or descendant thereof.)
+
+ The size to set on the parameter. Defaults to 0, or DbString.DefaultLength in case of strings.
+ The DynamicParameters instance
+
+
+
+ Tell Dapper to use an explicit constructor, passing nulls or 0s for all parameters
+
+
+
+
+ Handles variances in features per DBMS
+
+
+
+
+ Gets the feature set based on the passed connection
+
+
+
+
+ True if the db supports array columns e.g. Postgresql
+
+
+
+
+ Represents simple member map for one of target parameter or property or field to source DataReader column
+
+
+
+
+ Creates instance for simple property mapping
+
+ DataReader column name
+ Target property
+
+
+
+ Creates instance for simple field mapping
+
+ DataReader column name
+ Target property
+
+
+
+ Creates instance for simple constructor parameter mapping
+
+ DataReader column name
+ Target constructor parameter
+
+
+
+ DataReader column name
+
+
+
+
+ Target member type
+
+
+
+
+ Target property
+
+
+
+
+ Target field
+
+
+
+
+ Target constructor parameter
+
+
+
+
+ Used to pass a IEnumerable<SqlDataRecord> as a SqlDataRecordListTVPParameter
+
+
+
+
+ Create a new instance of SqlDataRecordListTVPParameter
+
+
+
+
+ Dapper, a light weight object mapper for ADO.NET
+
+
+
+
+ Called if the query cache is purged via PurgeQueryCache
+
+
+
+
+ Purge the query cache
+
+
+
+
+ Return a count of all the cached queries by dapper
+
+
+
+
+
+ Return a list of all the queries cached by dapper
+
+
+
+
+
+
+ Deep diagnostics only: find any hash collisions in the cache
+
+
+
+
+
+ Clear the registered type handlers
+
+
+
+
+ Configure the specified type to be mapped to a given db-type
+
+
+
+
+ Configure the specified type to be processed by a custom handler
+
+
+
+
+ Configure the specified type to be processed by a custom handler
+
+
+
+
+ Configure the specified type to be processed by a custom handler
+
+
+
+
+ Get the DbType that maps to a given value
+
+
+
+
+ OBSOLETE: For internal usage only. Lookup the DbType and handler for a given Type and member
+
+
+
+
+ Obtains the data as a list; if it is *already* a list, the original object is returned without
+ any duplication; otherwise, ToList() is invoked.
+
+
+
+
+ Execute parameterized SQL
+
+ Number of rows affected
+
+
+
+ Execute parameterized SQL
+
+ Number of rows affected
+
+
+
+ Execute parameterized SQL that selects a single value
+
+ The first cell selected
+
+
+
+ Execute parameterized SQL that selects a single value
+
+ The first cell selected
+
+
+
+ Execute parameterized SQL that selects a single value
+
+ The first cell selected
+
+
+
+ Execute parameterized SQL that selects a single value
+
+ The first cell selected
+
+
+
+ Execute parameterized SQL and return an
+
+ An that can be used to iterate over the results of the SQL query.
+
+ This is typically used when the results of a query are not processed by Dapper, for example, used to fill a
+ or .
+
+
+
+
+
+
+
+
+
+ Execute parameterized SQL and return an
+
+ An that can be used to iterate over the results of the SQL query.
+
+ This is typically used when the results of a query are not processed by Dapper, for example, used to fill a
+ or .
+
+
+
+
+ Execute parameterized SQL and return an
+
+ An that can be used to iterate over the results of the SQL query.
+
+ This is typically used when the results of a query are not processed by Dapper, for example, used to fill a
+ or .
+
+
+
+
+ Return a sequence of dynamic objects with properties matching the columns
+
+ Note: each row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Return a dynamic object with properties matching the columns
+
+ Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Return a dynamic object with properties matching the columns
+
+ Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Return a dynamic object with properties matching the columns
+
+ Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Return a dynamic object with properties matching the columns
+
+ Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Executes a query, returning the data typed as per T
+
+ A sequence of data of the supplied type; if a basic type (int, string, etc) is queried then the data from the first column in assumed, otherwise an instance is
+ created per row, and a direct column-name===member-name mapping is assumed (case insensitive).
+
+
+
+
+ Executes a single-row query, returning the data typed as per T
+
+ A sequence of data of the supplied type; if a basic type (int, string, etc) is queried then the data from the first column in assumed, otherwise an instance is
+ created per row, and a direct column-name===member-name mapping is assumed (case insensitive).
+
+
+
+
+ Executes a single-row query, returning the data typed as per T
+
+ A sequence of data of the supplied type; if a basic type (int, string, etc) is queried then the data from the first column in assumed, otherwise an instance is
+ created per row, and a direct column-name===member-name mapping is assumed (case insensitive).
+
+
+
+
+ Executes a single-row query, returning the data typed as per T
+
+ A sequence of data of the supplied type; if a basic type (int, string, etc) is queried then the data from the first column in assumed, otherwise an instance is
+ created per row, and a direct column-name===member-name mapping is assumed (case insensitive).
+
+
+
+
+ Executes a single-row query, returning the data typed as per T
+
+ A sequence of data of the supplied type; if a basic type (int, string, etc) is queried then the data from the first column in assumed, otherwise an instance is
+ created per row, and a direct column-name===member-name mapping is assumed (case insensitive).
+
+
+
+
+ Executes a single-row query, returning the data typed as per the Type suggested
+
+ A sequence of data of the supplied type; if a basic type (int, string, etc) is queried then the data from the first column in assumed, otherwise an instance is
+ created per row, and a direct column-name===member-name mapping is assumed (case insensitive).
+
+
+
+
+ Executes a single-row query, returning the data typed as per the Type suggested
+
+ A sequence of data of the supplied type; if a basic type (int, string, etc) is queried then the data from the first column in assumed, otherwise an instance is
+ created per row, and a direct column-name===member-name mapping is assumed (case insensitive).
+
+
+
+
+ Executes a single-row query, returning the data typed as per the Type suggested
+
+ A sequence of data of the supplied type; if a basic type (int, string, etc) is queried then the data from the first column in assumed, otherwise an instance is
+ created per row, and a direct column-name===member-name mapping is assumed (case insensitive).
+
+
+
+
+ Executes a single-row query, returning the data typed as per the Type suggested
+
+ A sequence of data of the supplied type; if a basic type (int, string, etc) is queried then the data from the first column in assumed, otherwise an instance is
+ created per row, and a direct column-name===member-name mapping is assumed (case insensitive).
+
+
+
+
+ Executes a single-row query, returning the data typed as per the Type suggested
+
+ A sequence of data of the supplied type; if a basic type (int, string, etc) is queried then the data from the first column in assumed, otherwise an instance is
+ created per row, and a direct column-name===member-name mapping is assumed (case insensitive).
+
+
+
+
+ Executes a query, returning the data typed as per T
+
+ the dynamic param may seem a bit odd, but this works around a major usability issue in vs, if it is Object vs completion gets annoying. Eg type new [space] get new object
+ A sequence of data of the supplied type; if a basic type (int, string, etc) is queried then the data from the first column in assumed, otherwise an instance is
+ created per row, and a direct column-name===member-name mapping is assumed (case insensitive).
+
+
+
+
+ Executes a query, returning the data typed as per T
+
+ the dynamic param may seem a bit odd, but this works around a major usability issue in vs, if it is Object vs completion gets annoying. Eg type new [space] get new object
+ A single instance or null of the supplied type; if a basic type (int, string, etc) is queried then the data from the first column in assumed, otherwise an instance is
+ created per row, and a direct column-name===member-name mapping is assumed (case insensitive).
+
+
+
+
+ Executes a query, returning the data typed as per T
+
+ the dynamic param may seem a bit odd, but this works around a major usability issue in vs, if it is Object vs completion gets annoying. Eg type new [space] get new object
+ A single or null instance of the supplied type; if a basic type (int, string, etc) is queried then the data from the first column in assumed, otherwise an instance is
+ created per row, and a direct column-name===member-name mapping is assumed (case insensitive).
+
+
+
+
+ Executes a query, returning the data typed as per T
+
+ the dynamic param may seem a bit odd, but this works around a major usability issue in vs, if it is Object vs completion gets annoying. Eg type new [space] get new object
+ A single instance of the supplied type; if a basic type (int, string, etc) is queried then the data from the first column in assumed, otherwise an instance is
+ created per row, and a direct column-name===member-name mapping is assumed (case insensitive).
+
+
+
+
+ Executes a query, returning the data typed as per T
+
+ the dynamic param may seem a bit odd, but this works around a major usability issue in vs, if it is Object vs completion gets annoying. Eg type new [space] get new object
+ A single instance of the supplied type; if a basic type (int, string, etc) is queried then the data from the first column in assumed, otherwise an instance is
+ created per row, and a direct column-name===member-name mapping is assumed (case insensitive).
+
+
+
+
+ Execute a command that returns multiple result sets, and access each in turn
+
+
+
+
+ Execute a command that returns multiple result sets, and access each in turn
+
+
+
+
+ Maps a query to objects
+
+ The first type in the record set
+ The second type in the record set
+ The return type
+
+
+
+
+
+
+ The Field we should split and read the second object from (default: id)
+ Number of seconds before command execution timeout
+ Is it a stored proc or a batch?
+
+
+
+
+ Maps a query to objects
+
+
+
+
+
+
+
+
+
+
+
+ The Field we should split and read the second object from (default: id)
+ Number of seconds before command execution timeout
+
+
+
+
+
+ Perform a multi mapping query with 4 input parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Perform a multi mapping query with 5 input parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Perform a multi mapping query with 6 input parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Perform a multi mapping query with 7 input parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Perform a multi mapping query with arbitrary input parameters
+
+ The return type
+
+
+ array of types in the record set
+
+
+
+
+ The Field we should split and read the second object from (default: id)
+ Number of seconds before command execution timeout
+ Is it a stored proc or a batch?
+
+
+
+
+ Internal use only
+
+
+
+
+
+
+ Internal use only
+
+
+
+
+ Internal use only
+
+
+
+
+ Internal use only
+
+
+
+
+ OBSOLETE: For internal usage only. Sanitizes the paramter value with proper type casting.
+
+
+
+
+ Replace all literal tokens with their text form
+
+
+
+
+ Convert numeric values to their string form for SQL literal purposes
+
+
+
+
+ Internal use only
+
+
+
+
+ Gets type-map for the given type
+
+ Type map instance, default is to create new instance of DefaultTypeMap
+
+
+
+ Gets type-map for the given type
+
+ Type map implementation, DefaultTypeMap instance if no override present
+
+
+
+ Set custom mapping for type deserializers
+
+ Entity type to override
+ Mapping rules impementation, null to remove custom map
+
+
+
+ Internal use only
+
+
+
+
+
+
+
+
+
+
+ Throws a data exception, only used internally
+
+
+
+
+ How should connection strings be compared for equivalence? Defaults to StringComparer.Ordinal.
+ Providing a custom implementation can be useful for allowing multi-tenancy databases with identical
+ schema to share strategies. Note that usual equivalence rules apply: any equivalent connection strings
+ MUST yield the same hash-code.
+
+
+
+
+ Key used to indicate the type name associated with a DataTable
+
+
+
+
+ Used to pass a DataTable as a TableValuedParameter
+
+
+
+
+ Associate a DataTable with a type name
+
+
+
+
+ Fetch the type name associated with a DataTable
+
+
+
+
+ Used to pass a IEnumerable<SqlDataRecord> as a TableValuedParameter
+
+
+
+
+ Dummy type for excluding from multi-map
+
+
+
+
+ The grid reader provides interfaces for reading multiple result sets from a Dapper query
+
+
+
+
+ Read the next grid of results, returned as a dynamic object
+
+ Note: each row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Read an individual row of the next grid of results, returned as a dynamic object
+
+ Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Read an individual row of the next grid of results, returned as a dynamic object
+
+ Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Read an individual row of the next grid of results, returned as a dynamic object
+
+ Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Read an individual row of the next grid of results, returned as a dynamic object
+
+ Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Read the next grid of results
+
+
+
+
+ Read an individual row of the next grid of results
+
+
+
+
+ Read an individual row of the next grid of results
+
+
+
+
+ Read an individual row of the next grid of results
+
+
+
+
+ Read an individual row of the next grid of results
+
+
+
+
+ Read the next grid of results
+
+
+
+
+ Read an individual row of the next grid of results
+
+
+
+
+ Read an individual row of the next grid of results
+
+
+
+
+ Read an individual row of the next grid of results
+
+
+
+
+ Read an individual row of the next grid of results
+
+
+
+
+ Read multiple objects from a single record set on the grid
+
+
+
+
+ Read multiple objects from a single record set on the grid
+
+
+
+
+ Read multiple objects from a single record set on the grid
+
+
+
+
+ Read multiple objects from a single record set on the grid
+
+
+
+
+ Read multiple objects from a single record set on the grid
+
+
+
+
+ Read multiple objects from a single record set on the grid
+
+
+
+
+ Read multiple objects from a single record set on the grid
+
+
+
+
+ Has the underlying reader been consumed?
+
+
+
+
+ The command associated with the reader
+
+
+
+
+ Dispose the grid, closing and disposing both the underlying reader and command.
+
+
+
+
+ Implement this interface to pass an arbitrary db specific parameter to Dapper
+
+
+
+
+ Add the parameter needed to the command before it executes
+
+ The raw command prior to execution
+ Parameter name
+
+
+
+ Parses a data reader to a sequence of data of the supplied type. Used for deserializing a reader without a connection, etc.
+
+
+
+
+ Parses a data reader to a sequence of data of the supplied type (as object). Used for deserializing a reader without a connection, etc.
+
+
+
+
+ Parses a data reader to a sequence of dynamic. Used for deserializing a reader without a connection, etc.
+
+
+
+
+ Gets the row parser for a specific row on a data reader. This allows for type switching every row based on, for example, a TypeId column.
+ You could return a collection of the base type but have each more specific.
+
+ The data reader to get the parser for the current row from
+ The type to get the parser for
+ The start column index of the object (default 0)
+ The length of columns to read (default -1 = all fields following startIndex)
+ Return null if we can't find the first column? (default false)
+ A parser for this specific object from this row.
+
+
+
+ Gets the row parser for a specific row on a data reader. This allows for type switching every row based on, for example, a TypeId column.
+ You could return a collection of the base type but have each more specific.
+
+ The data reader to get the parser for the current row from
+ The type to get the parser for
+ The start column index of the object (default 0)
+ The length of columns to read (default -1 = all fields following startIndex)
+ Return null if we can't find the first column? (default false)
+ A parser for this specific object from this row.
+
+ var result = new List<BaseType>();
+ using (var reader = connection.ExecuteReader(@"
+ select 'abc' as Name, 1 as Type, 3.0 as Value
+ union all
+ select 'def' as Name, 2 as Type, 4.0 as Value"))
+ {
+ if (reader.Read())
+ {
+ var toFoo = reader.GetRowParser<BaseType>(typeof(Foo));
+ var toBar = reader.GetRowParser<BaseType>(typeof(Bar));
+ var col = reader.GetOrdinal("Type");
+ do
+ {
+ switch (reader.GetInt32(col))
+ {
+ case 1:
+ result.Add(toFoo(reader));
+ break;
+ case 2:
+ result.Add(toBar(reader));
+ break;
+ }
+ } while (reader.Read());
+ }
+ }
+
+ abstract class BaseType
+ {
+ public abstract int Type { get; }
+ }
+ class Foo : BaseType
+ {
+ public string Name { get; set; }
+ public override int Type => 1;
+ }
+ class Bar : BaseType
+ {
+ public float Value { get; set; }
+ public override int Type => 2;
+ }
+
+
+
+
+ Identity of a cached query in Dapper, used for extensibility
+
+
+
+
+ Create an identity for use with DynamicParameters, internal use only
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The sql
+
+
+
+
+ The command type
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Compare 2 Identity objects
+
+
+
+
+
+
+ Implement this interface to pass an arbitrary db specific set of parameters to Dapper
+
+
+
+
+ Add all the parameters needed to the command just before it executes
+
+ The raw command prior to execution
+ Information about the query
+
+
+
+ Implements this interface to provide custom member mapping
+
+
+
+
+ Source DataReader column name
+
+
+
+
+ Target member type
+
+
+
+
+ Target property
+
+
+
+
+ Target field
+
+
+
+
+ Target constructor parameter
+
+
+
+
+ Extends IDynamicParameters with facilities for executing callbacks after commands have completed
+
+
+
+
+ Invoked when the command has executed
+
+
+
+
+ Extends IDynamicParameters providing by-name lookup of parameter values
+
+
+
+
+ Get the value of the specified parameter (return null if not found)
+
+
+
+
+ Implement this interface to perform custom type-based parameter handling and value parsing
+
+
+
+
+ Assign the value of a parameter before a command executes
+
+ The parameter to configure
+ Parameter value
+
+
+
+ Parse a database value back to a typed value
+
+ The value from the database
+ The type to parse to
+ The typed value
+
+
+
+ Implement this interface to change default mapping of reader columns to type members
+
+
+
+
+ Finds best constructor
+
+ DataReader column names
+ DataReader column types
+ Matching constructor or default one
+
+
+
+ Returns a constructor which should *always* be used.
+
+ Parameters will be default values, nulls for reference types and zero'd for value types.
+
+ Use this class to force object creation away from parameterless constructors you don't control.
+
+
+
+
+ Gets mapping for constructor parameter
+
+ Constructor to resolve
+ DataReader column name
+ Mapping implementation
+
+
+
+ Gets member mapping for column
+
+ DataReader column name
+ Mapping implementation
+
+
+
+ This is a micro-cache; suitable when the number of terms is controllable (a few hundred, for example),
+ and strictly append-only; you cannot change existing values. All key matches are on **REFERENCE**
+ equality. The type is fully thread-safe.
+
+
+
+
+ Represents a placeholder for a value that should be replaced as a literal value in the resulting sql
+
+
+
+
+ The text in the original command that should be replaced
+
+
+
+
+ The name of the member referred to by the token
+
+
+
+
+ Permits specifying certain SqlMapper values globally.
+
+
+
+
+ Resets all Settings to their default values
+
+
+
+
+ Specifies the default Command Timeout for all Queries
+
+
+
+
+ Indicates whether nulls in data are silently ignored (default) vs actively applied and assigned to members
+
+
+
+
+ Should list expansions be padded with null-valued parameters, to prevent query-plan saturation? For example,
+ an 'in @foo' expansion with 7, 8 or 9 values will be sent as a list of 10 values, with 3, 2 or 1 of them null.
+ The padding size is relative to the size of the list; "next 10" under 150, "next 50" under 500,
+ "next 100" under 1500, etc.
+
+
+ Caution: this should be treated with care if your DB provider (or the specific configuration) allows for null
+ equality (aka "ansi nulls off"), as this may change the intent of your query; as such, this is disabled by
+ default and must be enabled.
+
+
+
+
+ If set (non-negative), when performing in-list expansions of integer types ("where id in @ids", etc), switch to a string_split based
+ operation if there are more than this many elements. Note that this feautre requires SQL Server 2016 / compatibility level 130 (or above).
+
+
+
+
+ Base-class for simple type-handlers
+
+
+
+
+ Assign the value of a parameter before a command executes
+
+ The parameter to configure
+ Parameter value
+
+
+
+ Parse a database value back to a typed value
+
+ The value from the database
+ The typed value
+
+
+
+ Base-class for simple type-handlers that are based around strings
+
+
+
+
+ Parse a string into the expected type (the string will never be null)
+
+
+
+
+ Format an instace into a string (the instance will never be null)
+
+
+
+
+ Assign the value of a parameter before a command executes
+
+ The parameter to configure
+ Parameter value
+
+
+
+ Parse a database value back to a typed value
+
+ The value from the database
+ The typed value
+
+
+
+ Not intended for direct usage
+
+
+
+
+ Not intended for direct usage
+
+
+
+
+ Not intended for direct usage
+
+
+
+
+ A type handler for data-types that are supported by the underlying provider, but which need
+ a well-known UdtTypeName to be specified
+
+
+
+
+ Creates a new instance of UdtTypeHandler with the specified UdtTypeName
+
+
+
+
+ Used to pass a DataTable as a TableValuedParameter
+
+
+
+
+ Create a new instance of TableValuedParameter
+
+
+
+
+ Create a new instance of TableValuedParameter
+
+
+
+
+ Describes a reader that controls the lifetime of both a command and a reader,
+ exposing the downstream command/reader as properties.
+
+
+
+
+ Obtain the underlying reader
+
+
+
+
+ Obtain the underlying command
+
+
+
+
diff --git a/csharp/marketconnectionNET/packages/Dapper.1.50.2/lib/net45/Dapper.dll b/csharp/marketconnectionNET/packages/Dapper.1.50.2/lib/net45/Dapper.dll
new file mode 100644
index 0000000..7ea80a0
Binary files /dev/null and b/csharp/marketconnectionNET/packages/Dapper.1.50.2/lib/net45/Dapper.dll differ
diff --git a/csharp/marketconnectionNET/packages/Dapper.1.50.2/lib/net45/Dapper.xml b/csharp/marketconnectionNET/packages/Dapper.1.50.2/lib/net45/Dapper.xml
new file mode 100644
index 0000000..52f064f
--- /dev/null
+++ b/csharp/marketconnectionNET/packages/Dapper.1.50.2/lib/net45/Dapper.xml
@@ -0,0 +1,1952 @@
+
+
+
+ Dapper
+
+
+
+
+ Represents the key aspects of a sql operation
+
+
+
+
+ The command (sql or a stored-procedure name) to execute
+
+
+
+
+ The parameters associated with the command
+
+
+
+
+ The active transaction for the command
+
+
+
+
+ The effective timeout for the command
+
+
+
+
+ The type of command that the command-text represents
+
+
+
+
+ Should data be buffered before returning?
+
+
+
+
+ Should the plan for this query be cached?
+
+
+
+
+ Additional state flags against this command
+
+
+
+
+ Can async queries be pipelined?
+
+
+
+
+ Initialize the command definition
+
+
+
+
+ For asynchronous operations, the cancellation-token
+
+
+
+
+ Additional state flags that control command behaviour
+
+
+
+
+ No additional flags
+
+
+
+
+ Should data be buffered before returning?
+
+
+
+
+ Can async queries be pipelined?
+
+
+
+
+ Should the plan cache be bypassed?
+
+
+
+
+ Implements custom property mapping by user provided criteria (usually presence of some custom attribute with column to member mapping)
+
+
+
+
+ Creates custom property mapping
+
+ Target entity type
+ Property selector based on target type and DataReader column name
+
+
+
+ Always returns default constructor
+
+ DataReader column names
+ DataReader column types
+ Default constructor
+
+
+
+ Always returns null
+
+
+
+
+
+ Not implemented as far as default constructor used for all cases
+
+
+
+
+
+
+
+ Returns property based on selector strategy
+
+ DataReader column name
+ Poperty member map
+
+
+
+ This class represents a SQL string, it can be used if you need to denote your parameter is a Char vs VarChar vs nVarChar vs nChar
+
+
+
+
+ Default value for IsAnsi.
+
+
+
+
+ A value to set the default value of strings
+ going through Dapper. Default is 4000, any value larger than this
+ field will not have the default value applied.
+
+
+
+
+ Create a new DbString
+
+
+
+
+ Ansi vs Unicode
+
+
+
+
+ Fixed length
+
+
+
+
+ Length of the string -1 for max
+
+
+
+
+ The value of the string
+
+
+
+
+ Add the parameter to the command... internal use only
+
+
+
+
+
+
+ Represents default type mapping strategy used by Dapper
+
+
+
+
+ Creates default type map
+
+ Entity type
+
+
+
+ Finds best constructor
+
+ DataReader column names
+ DataReader column types
+ Matching constructor or default one
+
+
+
+ Returns the constructor, if any, that has the ExplicitConstructorAttribute on it.
+
+
+
+
+ Gets mapping for constructor parameter
+
+ Constructor to resolve
+ DataReader column name
+ Mapping implementation
+
+
+
+ Gets member mapping for column
+
+ DataReader column name
+ Mapping implementation
+
+
+
+ Should column names like User_Id be allowed to match properties/fields like UserId ?
+
+
+
+
+ The settable properties for this typemap
+
+
+
+
+ A bag of parameters that can be passed to the Dapper Query and Execute methods
+
+
+
+
+ construct a dynamic parameter bag
+
+
+
+
+ construct a dynamic parameter bag
+
+ can be an anonymous type or a DynamicParameters bag
+
+
+
+ Append a whole object full of params to the dynamic
+ EG: AddDynamicParams(new {A = 1, B = 2}) // will add property A and B to the dynamic
+
+
+
+
+
+ Add a parameter to this dynamic parameter list
+
+
+
+
+ Add a parameter to this dynamic parameter list
+
+
+
+
+ If true, the command-text is inspected and only values that are clearly used are included on the connection
+
+
+
+
+ Add all the parameters needed to the command just before it executes
+
+ The raw command prior to execution
+ Information about the query
+
+
+
+ All the names of the param in the bag, use Get to yank them out
+
+
+
+
+ Get the value of a parameter
+
+
+
+ The value, note DBNull.Value is not returned, instead the value is returned as null
+
+
+
+ Allows you to automatically populate a target property/field from output parameters. It actually
+ creates an InputOutput parameter, so you can still pass data in.
+
+
+ The object whose property/field you wish to populate.
+ A MemberExpression targeting a property/field of the target (or descendant thereof.)
+
+ The size to set on the parameter. Defaults to 0, or DbString.DefaultLength in case of strings.
+ The DynamicParameters instance
+
+
+
+ Tell Dapper to use an explicit constructor, passing nulls or 0s for all parameters
+
+
+
+
+ Handles variances in features per DBMS
+
+
+
+
+ Gets the feature set based on the passed connection
+
+
+
+
+ True if the db supports array columns e.g. Postgresql
+
+
+
+
+ Represents simple member map for one of target parameter or property or field to source DataReader column
+
+
+
+
+ Creates instance for simple property mapping
+
+ DataReader column name
+ Target property
+
+
+
+ Creates instance for simple field mapping
+
+ DataReader column name
+ Target property
+
+
+
+ Creates instance for simple constructor parameter mapping
+
+ DataReader column name
+ Target constructor parameter
+
+
+
+ DataReader column name
+
+
+
+
+ Target member type
+
+
+
+
+ Target property
+
+
+
+
+ Target field
+
+
+
+
+ Target constructor parameter
+
+
+
+
+ Used to pass a IEnumerable<SqlDataRecord> as a SqlDataRecordListTVPParameter
+
+
+
+
+ Create a new instance of SqlDataRecordListTVPParameter
+
+
+
+
+ Dapper, a light weight object mapper for ADO.NET
+
+
+
+
+ Execute a query asynchronously using .NET 4.5 Task.
+
+ Note: each row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Execute a query asynchronously using .NET 4.5 Task.
+
+ Note: each row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Execute a single-row query asynchronously using .NET 4.5 Task.
+
+ Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Execute a single-row query asynchronously using .NET 4.5 Task.
+
+ Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Execute a single-row query asynchronously using .NET 4.5 Task.
+
+ Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Execute a single-row query asynchronously using .NET 4.5 Task.
+
+ Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Execute a query asynchronously using .NET 4.5 Task.
+
+
+
+
+ Execute a single-row query asynchronously using .NET 4.5 Task.
+
+
+
+
+ Execute a single-row query asynchronously using .NET 4.5 Task.
+
+
+
+
+ Execute a single-row query asynchronously using .NET 4.5 Task.
+
+
+
+
+ Execute a single-row query asynchronously using .NET 4.5 Task.
+
+
+
+
+ Execute a query asynchronously using .NET 4.5 Task.
+
+
+
+
+ Execute a single-row query asynchronously using .NET 4.5 Task.
+
+
+
+
+ Execute a single-row query asynchronously using .NET 4.5 Task.
+
+
+
+
+ Execute a single-row query asynchronously using .NET 4.5 Task.
+
+
+
+
+ Execute a single-row query asynchronously using .NET 4.5 Task.
+
+
+
+
+ Execute a query asynchronously using .NET 4.5 Task.
+
+
+
+
+ Execute a query asynchronously using .NET 4.5 Task.
+
+
+
+
+ Execute a single-row query asynchronously using .NET 4.5 Task.
+
+
+
+
+ Execute a single-row query asynchronously using .NET 4.5 Task.
+
+
+
+
+ Execute a single-row query asynchronously using .NET 4.5 Task.
+
+
+
+
+ Execute a single-row query asynchronously using .NET 4.5 Task.
+
+
+
+
+ Execute a command asynchronously using .NET 4.5 Task.
+
+
+
+
+ Execute a command asynchronously using .NET 4.5 Task.
+
+
+
+
+ Maps a query to objects
+
+ The first type in the recordset
+ The second type in the recordset
+ The return type
+
+
+
+
+
+
+ The field we should split and read the second object from (default: id)
+ Number of seconds before command execution timeout
+ Is it a stored proc or a batch?
+
+
+
+
+ Maps a query to objects
+
+ The first type in the recordset
+ The second type in the recordset
+ The return type
+
+ The field we should split and read the second object from (default: id)
+ The command to execute
+
+
+
+
+
+ Maps a query to objects
+
+
+
+
+
+
+
+
+
+
+
+ The Field we should split and read the second object from (default: id)
+ Number of seconds before command execution timeout
+
+
+
+
+
+ Maps a query to objects
+
+
+
+
+
+
+ The field we should split and read the second object from (default: id)
+ The command to execute
+
+
+
+
+
+ Perform a multi mapping query with 4 input parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Perform a multi mapping query with 4 input parameters
+
+
+
+
+
+
+
+ The field we should split and read the second object from (default: id)
+ The command to execute
+
+
+
+
+
+ Perform a multi mapping query with 5 input parameters
+
+
+
+
+ Perform a multi mapping query with 5 input parameters
+
+
+
+
+ Perform a multi mapping query with 6 input parameters
+
+
+
+
+ Perform a multi mapping query with 6 input parameters
+
+
+
+
+ Perform a multi mapping query with 7 input parameters
+
+
+
+
+ Perform a multi mapping query with 7 input parameters
+
+
+
+
+ Perform a multi mapping query with arbitrary input parameters
+
+ The return type
+
+
+ array of types in the recordset
+
+
+
+
+ The Field we should split and read the second object from (default: id)
+ Number of seconds before command execution timeout
+ Is it a stored proc or a batch?
+
+
+
+
+ Execute a command that returns multiple result sets, and access each in turn
+
+
+
+
+ Execute a command that returns multiple result sets, and access each in turn
+
+
+
+
+ Execute parameterized SQL and return an
+
+ An that can be used to iterate over the results of the SQL query.
+
+ This is typically used when the results of a query are not processed by Dapper, for example, used to fill a
+ or .
+
+
+
+
+
+
+
+
+
+ Execute parameterized SQL and return an
+
+ An that can be used to iterate over the results of the SQL query.
+
+ This is typically used when the results of a query are not processed by Dapper, for example, used to fill a
+ or .
+
+
+
+
+ Execute parameterized SQL that selects a single value
+
+ The first cell selected
+
+
+
+ Execute parameterized SQL that selects a single value
+
+ The first cell selected
+
+
+
+ Execute parameterized SQL that selects a single value
+
+ The first cell selected
+
+
+
+ Execute parameterized SQL that selects a single value
+
+ The first cell selected
+
+
+
+ Called if the query cache is purged via PurgeQueryCache
+
+
+
+
+ Purge the query cache
+
+
+
+
+ Return a count of all the cached queries by dapper
+
+
+
+
+
+ Return a list of all the queries cached by dapper
+
+
+
+
+
+
+ Deep diagnostics only: find any hash collisions in the cache
+
+
+
+
+
+ Clear the registered type handlers
+
+
+
+
+ Configure the specified type to be mapped to a given db-type
+
+
+
+
+ Configure the specified type to be processed by a custom handler
+
+
+
+
+ Configure the specified type to be processed by a custom handler
+
+
+
+
+ Configure the specified type to be processed by a custom handler
+
+
+
+
+ Get the DbType that maps to a given value
+
+
+
+
+ OBSOLETE: For internal usage only. Lookup the DbType and handler for a given Type and member
+
+
+
+
+ Obtains the data as a list; if it is *already* a list, the original object is returned without
+ any duplication; otherwise, ToList() is invoked.
+
+
+
+
+ Execute parameterized SQL
+
+ Number of rows affected
+
+
+
+ Execute parameterized SQL
+
+ Number of rows affected
+
+
+
+ Execute parameterized SQL that selects a single value
+
+ The first cell selected
+
+
+
+ Execute parameterized SQL that selects a single value
+
+ The first cell selected
+
+
+
+ Execute parameterized SQL that selects a single value
+
+ The first cell selected
+
+
+
+ Execute parameterized SQL that selects a single value
+
+ The first cell selected
+
+
+
+ Execute parameterized SQL and return an
+
+ An that can be used to iterate over the results of the SQL query.
+
+ This is typically used when the results of a query are not processed by Dapper, for example, used to fill a
+ or .
+
+
+
+
+
+
+
+
+
+ Execute parameterized SQL and return an
+
+ An that can be used to iterate over the results of the SQL query.
+
+ This is typically used when the results of a query are not processed by Dapper, for example, used to fill a
+ or .
+
+
+
+
+ Execute parameterized SQL and return an
+
+ An that can be used to iterate over the results of the SQL query.
+
+ This is typically used when the results of a query are not processed by Dapper, for example, used to fill a
+ or .
+
+
+
+
+ Return a sequence of dynamic objects with properties matching the columns
+
+ Note: each row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Return a dynamic object with properties matching the columns
+
+ Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Return a dynamic object with properties matching the columns
+
+ Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Return a dynamic object with properties matching the columns
+
+ Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Return a dynamic object with properties matching the columns
+
+ Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Executes a query, returning the data typed as per T
+
+ A sequence of data of the supplied type; if a basic type (int, string, etc) is queried then the data from the first column in assumed, otherwise an instance is
+ created per row, and a direct column-name===member-name mapping is assumed (case insensitive).
+
+
+
+
+ Executes a single-row query, returning the data typed as per T
+
+ A sequence of data of the supplied type; if a basic type (int, string, etc) is queried then the data from the first column in assumed, otherwise an instance is
+ created per row, and a direct column-name===member-name mapping is assumed (case insensitive).
+
+
+
+
+ Executes a single-row query, returning the data typed as per T
+
+ A sequence of data of the supplied type; if a basic type (int, string, etc) is queried then the data from the first column in assumed, otherwise an instance is
+ created per row, and a direct column-name===member-name mapping is assumed (case insensitive).
+
+
+
+
+ Executes a single-row query, returning the data typed as per T
+
+ A sequence of data of the supplied type; if a basic type (int, string, etc) is queried then the data from the first column in assumed, otherwise an instance is
+ created per row, and a direct column-name===member-name mapping is assumed (case insensitive).
+
+
+
+
+ Executes a single-row query, returning the data typed as per T
+
+ A sequence of data of the supplied type; if a basic type (int, string, etc) is queried then the data from the first column in assumed, otherwise an instance is
+ created per row, and a direct column-name===member-name mapping is assumed (case insensitive).
+
+
+
+
+ Executes a single-row query, returning the data typed as per the Type suggested
+
+ A sequence of data of the supplied type; if a basic type (int, string, etc) is queried then the data from the first column in assumed, otherwise an instance is
+ created per row, and a direct column-name===member-name mapping is assumed (case insensitive).
+
+
+
+
+ Executes a single-row query, returning the data typed as per the Type suggested
+
+ A sequence of data of the supplied type; if a basic type (int, string, etc) is queried then the data from the first column in assumed, otherwise an instance is
+ created per row, and a direct column-name===member-name mapping is assumed (case insensitive).
+
+
+
+
+ Executes a single-row query, returning the data typed as per the Type suggested
+
+ A sequence of data of the supplied type; if a basic type (int, string, etc) is queried then the data from the first column in assumed, otherwise an instance is
+ created per row, and a direct column-name===member-name mapping is assumed (case insensitive).
+
+
+
+
+ Executes a single-row query, returning the data typed as per the Type suggested
+
+ A sequence of data of the supplied type; if a basic type (int, string, etc) is queried then the data from the first column in assumed, otherwise an instance is
+ created per row, and a direct column-name===member-name mapping is assumed (case insensitive).
+
+
+
+
+ Executes a single-row query, returning the data typed as per the Type suggested
+
+ A sequence of data of the supplied type; if a basic type (int, string, etc) is queried then the data from the first column in assumed, otherwise an instance is
+ created per row, and a direct column-name===member-name mapping is assumed (case insensitive).
+
+
+
+
+ Executes a query, returning the data typed as per T
+
+ the dynamic param may seem a bit odd, but this works around a major usability issue in vs, if it is Object vs completion gets annoying. Eg type new [space] get new object
+ A sequence of data of the supplied type; if a basic type (int, string, etc) is queried then the data from the first column in assumed, otherwise an instance is
+ created per row, and a direct column-name===member-name mapping is assumed (case insensitive).
+
+
+
+
+ Executes a query, returning the data typed as per T
+
+ the dynamic param may seem a bit odd, but this works around a major usability issue in vs, if it is Object vs completion gets annoying. Eg type new [space] get new object
+ A single instance or null of the supplied type; if a basic type (int, string, etc) is queried then the data from the first column in assumed, otherwise an instance is
+ created per row, and a direct column-name===member-name mapping is assumed (case insensitive).
+
+
+
+
+ Executes a query, returning the data typed as per T
+
+ the dynamic param may seem a bit odd, but this works around a major usability issue in vs, if it is Object vs completion gets annoying. Eg type new [space] get new object
+ A single or null instance of the supplied type; if a basic type (int, string, etc) is queried then the data from the first column in assumed, otherwise an instance is
+ created per row, and a direct column-name===member-name mapping is assumed (case insensitive).
+
+
+
+
+ Executes a query, returning the data typed as per T
+
+ the dynamic param may seem a bit odd, but this works around a major usability issue in vs, if it is Object vs completion gets annoying. Eg type new [space] get new object
+ A single instance of the supplied type; if a basic type (int, string, etc) is queried then the data from the first column in assumed, otherwise an instance is
+ created per row, and a direct column-name===member-name mapping is assumed (case insensitive).
+
+
+
+
+ Executes a query, returning the data typed as per T
+
+ the dynamic param may seem a bit odd, but this works around a major usability issue in vs, if it is Object vs completion gets annoying. Eg type new [space] get new object
+ A single instance of the supplied type; if a basic type (int, string, etc) is queried then the data from the first column in assumed, otherwise an instance is
+ created per row, and a direct column-name===member-name mapping is assumed (case insensitive).
+
+
+
+
+ Execute a command that returns multiple result sets, and access each in turn
+
+
+
+
+ Execute a command that returns multiple result sets, and access each in turn
+
+
+
+
+ Maps a query to objects
+
+ The first type in the record set
+ The second type in the record set
+ The return type
+
+
+
+
+
+
+ The Field we should split and read the second object from (default: id)
+ Number of seconds before command execution timeout
+ Is it a stored proc or a batch?
+
+
+
+
+ Maps a query to objects
+
+
+
+
+
+
+
+
+
+
+
+ The Field we should split and read the second object from (default: id)
+ Number of seconds before command execution timeout
+
+
+
+
+
+ Perform a multi mapping query with 4 input parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Perform a multi mapping query with 5 input parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Perform a multi mapping query with 6 input parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Perform a multi mapping query with 7 input parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Perform a multi mapping query with arbitrary input parameters
+
+ The return type
+
+
+ array of types in the record set
+
+
+
+
+ The Field we should split and read the second object from (default: id)
+ Number of seconds before command execution timeout
+ Is it a stored proc or a batch?
+
+
+
+
+ Internal use only
+
+
+
+
+
+
+ Internal use only
+
+
+
+
+ Internal use only
+
+
+
+
+ Internal use only
+
+
+
+
+ OBSOLETE: For internal usage only. Sanitizes the paramter value with proper type casting.
+
+
+
+
+ Replace all literal tokens with their text form
+
+
+
+
+ Convert numeric values to their string form for SQL literal purposes
+
+
+
+
+ Internal use only
+
+
+
+
+ Gets type-map for the given type
+
+ Type map instance, default is to create new instance of DefaultTypeMap
+
+
+
+ Gets type-map for the given type
+
+ Type map implementation, DefaultTypeMap instance if no override present
+
+
+
+ Set custom mapping for type deserializers
+
+ Entity type to override
+ Mapping rules impementation, null to remove custom map
+
+
+
+ Internal use only
+
+
+
+
+
+
+
+
+
+
+ Throws a data exception, only used internally
+
+
+
+
+ How should connection strings be compared for equivalence? Defaults to StringComparer.Ordinal.
+ Providing a custom implementation can be useful for allowing multi-tenancy databases with identical
+ schema to share strategies. Note that usual equivalence rules apply: any equivalent connection strings
+ MUST yield the same hash-code.
+
+
+
+
+ Key used to indicate the type name associated with a DataTable
+
+
+
+
+ Used to pass a DataTable as a TableValuedParameter
+
+
+
+
+ Associate a DataTable with a type name
+
+
+
+
+ Fetch the type name associated with a DataTable
+
+
+
+
+ Used to pass a IEnumerable<SqlDataRecord> as a TableValuedParameter
+
+
+
+
+ Dummy type for excluding from multi-map
+
+
+
+
+ The grid reader provides interfaces for reading multiple result sets from a Dapper query
+
+
+
+
+ Read the next grid of results, returned as a dynamic object
+
+ Note: each row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Read an individual row of the next grid of results, returned as a dynamic object
+
+ Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Read an individual row of the next grid of results, returned as a dynamic object
+
+ Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Read an individual row of the next grid of results, returned as a dynamic object
+
+ Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Read an individual row of the next grid of results, returned as a dynamic object
+
+ Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Read the next grid of results
+
+
+
+
+ Read an individual row of the next grid of results
+
+
+
+
+ Read an individual row of the next grid of results
+
+
+
+
+ Read an individual row of the next grid of results
+
+
+
+
+ Read an individual row of the next grid of results
+
+
+
+
+ Read the next grid of results
+
+
+
+
+ Read an individual row of the next grid of results
+
+
+
+
+ Read an individual row of the next grid of results
+
+
+
+
+ Read an individual row of the next grid of results
+
+
+
+
+ Read an individual row of the next grid of results
+
+
+
+
+ Read the next grid of results, returned as a dynamic object
+
+ Note: each row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Read an individual row of the next grid of results, returned as a dynamic object
+
+ Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Read an individual row of the next grid of results, returned as a dynamic object
+
+ Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Read an individual row of the next grid of results, returned as a dynamic object
+
+ Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Read an individual row of the next grid of results, returned as a dynamic object
+
+ Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Read the next grid of results
+
+
+
+
+ Read an individual row of the next grid of results
+
+
+
+
+ Read an individual row of the next grid of results
+
+
+
+
+ Read an individual row of the next grid of results
+
+
+
+
+ Read an individual row of the next grid of results
+
+
+
+
+ Read the next grid of results
+
+
+
+
+ Read an individual row of the next grid of results
+
+
+
+
+ Read an individual row of the next grid of results
+
+
+
+
+ Read an individual row of the next grid of results
+
+
+
+
+ Read an individual row of the next grid of results
+
+
+
+
+ Read multiple objects from a single record set on the grid
+
+
+
+
+ Read multiple objects from a single record set on the grid
+
+
+
+
+ Read multiple objects from a single record set on the grid
+
+
+
+
+ Read multiple objects from a single record set on the grid
+
+
+
+
+ Read multiple objects from a single record set on the grid
+
+
+
+
+ Read multiple objects from a single record set on the grid
+
+
+
+
+ Read multiple objects from a single record set on the grid
+
+
+
+
+ Has the underlying reader been consumed?
+
+
+
+
+ The command associated with the reader
+
+
+
+
+ Dispose the grid, closing and disposing both the underlying reader and command.
+
+
+
+
+ Implement this interface to pass an arbitrary db specific parameter to Dapper
+
+
+
+
+ Add the parameter needed to the command before it executes
+
+ The raw command prior to execution
+ Parameter name
+
+
+
+ Parses a data reader to a sequence of data of the supplied type. Used for deserializing a reader without a connection, etc.
+
+
+
+
+ Parses a data reader to a sequence of data of the supplied type (as object). Used for deserializing a reader without a connection, etc.
+
+
+
+
+ Parses a data reader to a sequence of dynamic. Used for deserializing a reader without a connection, etc.
+
+
+
+
+ Gets the row parser for a specific row on a data reader. This allows for type switching every row based on, for example, a TypeId column.
+ You could return a collection of the base type but have each more specific.
+
+ The data reader to get the parser for the current row from
+ The type to get the parser for
+ The start column index of the object (default 0)
+ The length of columns to read (default -1 = all fields following startIndex)
+ Return null if we can't find the first column? (default false)
+ A parser for this specific object from this row.
+
+
+
+ Gets the row parser for a specific row on a data reader. This allows for type switching every row based on, for example, a TypeId column.
+ You could return a collection of the base type but have each more specific.
+
+ The data reader to get the parser for the current row from
+ The type to get the parser for
+ The start column index of the object (default 0)
+ The length of columns to read (default -1 = all fields following startIndex)
+ Return null if we can't find the first column? (default false)
+ A parser for this specific object from this row.
+
+ var result = new List<BaseType>();
+ using (var reader = connection.ExecuteReader(@"
+ select 'abc' as Name, 1 as Type, 3.0 as Value
+ union all
+ select 'def' as Name, 2 as Type, 4.0 as Value"))
+ {
+ if (reader.Read())
+ {
+ var toFoo = reader.GetRowParser<BaseType>(typeof(Foo));
+ var toBar = reader.GetRowParser<BaseType>(typeof(Bar));
+ var col = reader.GetOrdinal("Type");
+ do
+ {
+ switch (reader.GetInt32(col))
+ {
+ case 1:
+ result.Add(toFoo(reader));
+ break;
+ case 2:
+ result.Add(toBar(reader));
+ break;
+ }
+ } while (reader.Read());
+ }
+ }
+
+ abstract class BaseType
+ {
+ public abstract int Type { get; }
+ }
+ class Foo : BaseType
+ {
+ public string Name { get; set; }
+ public override int Type => 1;
+ }
+ class Bar : BaseType
+ {
+ public float Value { get; set; }
+ public override int Type => 2;
+ }
+
+
+
+
+ Identity of a cached query in Dapper, used for extensibility
+
+
+
+
+ Create an identity for use with DynamicParameters, internal use only
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The sql
+
+
+
+
+ The command type
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Compare 2 Identity objects
+
+
+
+
+
+
+ Implement this interface to pass an arbitrary db specific set of parameters to Dapper
+
+
+
+
+ Add all the parameters needed to the command just before it executes
+
+ The raw command prior to execution
+ Information about the query
+
+
+
+ Implements this interface to provide custom member mapping
+
+
+
+
+ Source DataReader column name
+
+
+
+
+ Target member type
+
+
+
+
+ Target property
+
+
+
+
+ Target field
+
+
+
+
+ Target constructor parameter
+
+
+
+
+ Extends IDynamicParameters with facilities for executing callbacks after commands have completed
+
+
+
+
+ Invoked when the command has executed
+
+
+
+
+ Extends IDynamicParameters providing by-name lookup of parameter values
+
+
+
+
+ Get the value of the specified parameter (return null if not found)
+
+
+
+
+ Implement this interface to perform custom type-based parameter handling and value parsing
+
+
+
+
+ Assign the value of a parameter before a command executes
+
+ The parameter to configure
+ Parameter value
+
+
+
+ Parse a database value back to a typed value
+
+ The value from the database
+ The type to parse to
+ The typed value
+
+
+
+ Implement this interface to change default mapping of reader columns to type members
+
+
+
+
+ Finds best constructor
+
+ DataReader column names
+ DataReader column types
+ Matching constructor or default one
+
+
+
+ Returns a constructor which should *always* be used.
+
+ Parameters will be default values, nulls for reference types and zero'd for value types.
+
+ Use this class to force object creation away from parameterless constructors you don't control.
+
+
+
+
+ Gets mapping for constructor parameter
+
+ Constructor to resolve
+ DataReader column name
+ Mapping implementation
+
+
+
+ Gets member mapping for column
+
+ DataReader column name
+ Mapping implementation
+
+
+
+ This is a micro-cache; suitable when the number of terms is controllable (a few hundred, for example),
+ and strictly append-only; you cannot change existing values. All key matches are on **REFERENCE**
+ equality. The type is fully thread-safe.
+
+
+
+
+ Represents a placeholder for a value that should be replaced as a literal value in the resulting sql
+
+
+
+
+ The text in the original command that should be replaced
+
+
+
+
+ The name of the member referred to by the token
+
+
+
+
+ Permits specifying certain SqlMapper values globally.
+
+
+
+
+ Resets all Settings to their default values
+
+
+
+
+ Specifies the default Command Timeout for all Queries
+
+
+
+
+ Indicates whether nulls in data are silently ignored (default) vs actively applied and assigned to members
+
+
+
+
+ Should list expansions be padded with null-valued parameters, to prevent query-plan saturation? For example,
+ an 'in @foo' expansion with 7, 8 or 9 values will be sent as a list of 10 values, with 3, 2 or 1 of them null.
+ The padding size is relative to the size of the list; "next 10" under 150, "next 50" under 500,
+ "next 100" under 1500, etc.
+
+
+ Caution: this should be treated with care if your DB provider (or the specific configuration) allows for null
+ equality (aka "ansi nulls off"), as this may change the intent of your query; as such, this is disabled by
+ default and must be enabled.
+
+
+
+
+ If set (non-negative), when performing in-list expansions of integer types ("where id in @ids", etc), switch to a string_split based
+ operation if there are more than this many elements. Note that this feautre requires SQL Server 2016 / compatibility level 130 (or above).
+
+
+
+
+ Base-class for simple type-handlers
+
+
+
+
+ Assign the value of a parameter before a command executes
+
+ The parameter to configure
+ Parameter value
+
+
+
+ Parse a database value back to a typed value
+
+ The value from the database
+ The typed value
+
+
+
+ Base-class for simple type-handlers that are based around strings
+
+
+
+
+ Parse a string into the expected type (the string will never be null)
+
+
+
+
+ Format an instace into a string (the instance will never be null)
+
+
+
+
+ Assign the value of a parameter before a command executes
+
+ The parameter to configure
+ Parameter value
+
+
+
+ Parse a database value back to a typed value
+
+ The value from the database
+ The typed value
+
+
+
+ Not intended for direct usage
+
+
+
+
+ Not intended for direct usage
+
+
+
+
+ Not intended for direct usage
+
+
+
+
+ A type handler for data-types that are supported by the underlying provider, but which need
+ a well-known UdtTypeName to be specified
+
+
+
+
+ Creates a new instance of UdtTypeHandler with the specified UdtTypeName
+
+
+
+
+ Used to pass a DataTable as a TableValuedParameter
+
+
+
+
+ Create a new instance of TableValuedParameter
+
+
+
+
+ Create a new instance of TableValuedParameter
+
+
+
+
+ Describes a reader that controls the lifetime of both a command and a reader,
+ exposing the downstream command/reader as properties.
+
+
+
+
+ Obtain the underlying reader
+
+
+
+
+ Obtain the underlying command
+
+
+
+
diff --git a/csharp/marketconnectionNET/packages/Dapper.1.50.2/lib/net451/Dapper.dll b/csharp/marketconnectionNET/packages/Dapper.1.50.2/lib/net451/Dapper.dll
new file mode 100644
index 0000000..ba449d4
Binary files /dev/null and b/csharp/marketconnectionNET/packages/Dapper.1.50.2/lib/net451/Dapper.dll differ
diff --git a/csharp/marketconnectionNET/packages/Dapper.1.50.2/lib/net451/Dapper.xml b/csharp/marketconnectionNET/packages/Dapper.1.50.2/lib/net451/Dapper.xml
new file mode 100644
index 0000000..52f064f
--- /dev/null
+++ b/csharp/marketconnectionNET/packages/Dapper.1.50.2/lib/net451/Dapper.xml
@@ -0,0 +1,1952 @@
+
+
+
+ Dapper
+
+
+
+
+ Represents the key aspects of a sql operation
+
+
+
+
+ The command (sql or a stored-procedure name) to execute
+
+
+
+
+ The parameters associated with the command
+
+
+
+
+ The active transaction for the command
+
+
+
+
+ The effective timeout for the command
+
+
+
+
+ The type of command that the command-text represents
+
+
+
+
+ Should data be buffered before returning?
+
+
+
+
+ Should the plan for this query be cached?
+
+
+
+
+ Additional state flags against this command
+
+
+
+
+ Can async queries be pipelined?
+
+
+
+
+ Initialize the command definition
+
+
+
+
+ For asynchronous operations, the cancellation-token
+
+
+
+
+ Additional state flags that control command behaviour
+
+
+
+
+ No additional flags
+
+
+
+
+ Should data be buffered before returning?
+
+
+
+
+ Can async queries be pipelined?
+
+
+
+
+ Should the plan cache be bypassed?
+
+
+
+
+ Implements custom property mapping by user provided criteria (usually presence of some custom attribute with column to member mapping)
+
+
+
+
+ Creates custom property mapping
+
+ Target entity type
+ Property selector based on target type and DataReader column name
+
+
+
+ Always returns default constructor
+
+ DataReader column names
+ DataReader column types
+ Default constructor
+
+
+
+ Always returns null
+
+
+
+
+
+ Not implemented as far as default constructor used for all cases
+
+
+
+
+
+
+
+ Returns property based on selector strategy
+
+ DataReader column name
+ Poperty member map
+
+
+
+ This class represents a SQL string, it can be used if you need to denote your parameter is a Char vs VarChar vs nVarChar vs nChar
+
+
+
+
+ Default value for IsAnsi.
+
+
+
+
+ A value to set the default value of strings
+ going through Dapper. Default is 4000, any value larger than this
+ field will not have the default value applied.
+
+
+
+
+ Create a new DbString
+
+
+
+
+ Ansi vs Unicode
+
+
+
+
+ Fixed length
+
+
+
+
+ Length of the string -1 for max
+
+
+
+
+ The value of the string
+
+
+
+
+ Add the parameter to the command... internal use only
+
+
+
+
+
+
+ Represents default type mapping strategy used by Dapper
+
+
+
+
+ Creates default type map
+
+ Entity type
+
+
+
+ Finds best constructor
+
+ DataReader column names
+ DataReader column types
+ Matching constructor or default one
+
+
+
+ Returns the constructor, if any, that has the ExplicitConstructorAttribute on it.
+
+
+
+
+ Gets mapping for constructor parameter
+
+ Constructor to resolve
+ DataReader column name
+ Mapping implementation
+
+
+
+ Gets member mapping for column
+
+ DataReader column name
+ Mapping implementation
+
+
+
+ Should column names like User_Id be allowed to match properties/fields like UserId ?
+
+
+
+
+ The settable properties for this typemap
+
+
+
+
+ A bag of parameters that can be passed to the Dapper Query and Execute methods
+
+
+
+
+ construct a dynamic parameter bag
+
+
+
+
+ construct a dynamic parameter bag
+
+ can be an anonymous type or a DynamicParameters bag
+
+
+
+ Append a whole object full of params to the dynamic
+ EG: AddDynamicParams(new {A = 1, B = 2}) // will add property A and B to the dynamic
+
+
+
+
+
+ Add a parameter to this dynamic parameter list
+
+
+
+
+ Add a parameter to this dynamic parameter list
+
+
+
+
+ If true, the command-text is inspected and only values that are clearly used are included on the connection
+
+
+
+
+ Add all the parameters needed to the command just before it executes
+
+ The raw command prior to execution
+ Information about the query
+
+
+
+ All the names of the param in the bag, use Get to yank them out
+
+
+
+
+ Get the value of a parameter
+
+
+
+ The value, note DBNull.Value is not returned, instead the value is returned as null
+
+
+
+ Allows you to automatically populate a target property/field from output parameters. It actually
+ creates an InputOutput parameter, so you can still pass data in.
+
+
+ The object whose property/field you wish to populate.
+ A MemberExpression targeting a property/field of the target (or descendant thereof.)
+
+ The size to set on the parameter. Defaults to 0, or DbString.DefaultLength in case of strings.
+ The DynamicParameters instance
+
+
+
+ Tell Dapper to use an explicit constructor, passing nulls or 0s for all parameters
+
+
+
+
+ Handles variances in features per DBMS
+
+
+
+
+ Gets the feature set based on the passed connection
+
+
+
+
+ True if the db supports array columns e.g. Postgresql
+
+
+
+
+ Represents simple member map for one of target parameter or property or field to source DataReader column
+
+
+
+
+ Creates instance for simple property mapping
+
+ DataReader column name
+ Target property
+
+
+
+ Creates instance for simple field mapping
+
+ DataReader column name
+ Target property
+
+
+
+ Creates instance for simple constructor parameter mapping
+
+ DataReader column name
+ Target constructor parameter
+
+
+
+ DataReader column name
+
+
+
+
+ Target member type
+
+
+
+
+ Target property
+
+
+
+
+ Target field
+
+
+
+
+ Target constructor parameter
+
+
+
+
+ Used to pass a IEnumerable<SqlDataRecord> as a SqlDataRecordListTVPParameter
+
+
+
+
+ Create a new instance of SqlDataRecordListTVPParameter
+
+
+
+
+ Dapper, a light weight object mapper for ADO.NET
+
+
+
+
+ Execute a query asynchronously using .NET 4.5 Task.
+
+ Note: each row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Execute a query asynchronously using .NET 4.5 Task.
+
+ Note: each row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Execute a single-row query asynchronously using .NET 4.5 Task.
+
+ Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Execute a single-row query asynchronously using .NET 4.5 Task.
+
+ Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Execute a single-row query asynchronously using .NET 4.5 Task.
+
+ Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Execute a single-row query asynchronously using .NET 4.5 Task.
+
+ Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Execute a query asynchronously using .NET 4.5 Task.
+
+
+
+
+ Execute a single-row query asynchronously using .NET 4.5 Task.
+
+
+
+
+ Execute a single-row query asynchronously using .NET 4.5 Task.
+
+
+
+
+ Execute a single-row query asynchronously using .NET 4.5 Task.
+
+
+
+
+ Execute a single-row query asynchronously using .NET 4.5 Task.
+
+
+
+
+ Execute a query asynchronously using .NET 4.5 Task.
+
+
+
+
+ Execute a single-row query asynchronously using .NET 4.5 Task.
+
+
+
+
+ Execute a single-row query asynchronously using .NET 4.5 Task.
+
+
+
+
+ Execute a single-row query asynchronously using .NET 4.5 Task.
+
+
+
+
+ Execute a single-row query asynchronously using .NET 4.5 Task.
+
+
+
+
+ Execute a query asynchronously using .NET 4.5 Task.
+
+
+
+
+ Execute a query asynchronously using .NET 4.5 Task.
+
+
+
+
+ Execute a single-row query asynchronously using .NET 4.5 Task.
+
+
+
+
+ Execute a single-row query asynchronously using .NET 4.5 Task.
+
+
+
+
+ Execute a single-row query asynchronously using .NET 4.5 Task.
+
+
+
+
+ Execute a single-row query asynchronously using .NET 4.5 Task.
+
+
+
+
+ Execute a command asynchronously using .NET 4.5 Task.
+
+
+
+
+ Execute a command asynchronously using .NET 4.5 Task.
+
+
+
+
+ Maps a query to objects
+
+ The first type in the recordset
+ The second type in the recordset
+ The return type
+
+
+
+
+
+
+ The field we should split and read the second object from (default: id)
+ Number of seconds before command execution timeout
+ Is it a stored proc or a batch?
+
+
+
+
+ Maps a query to objects
+
+ The first type in the recordset
+ The second type in the recordset
+ The return type
+
+ The field we should split and read the second object from (default: id)
+ The command to execute
+
+
+
+
+
+ Maps a query to objects
+
+
+
+
+
+
+
+
+
+
+
+ The Field we should split and read the second object from (default: id)
+ Number of seconds before command execution timeout
+
+
+
+
+
+ Maps a query to objects
+
+
+
+
+
+
+ The field we should split and read the second object from (default: id)
+ The command to execute
+
+
+
+
+
+ Perform a multi mapping query with 4 input parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Perform a multi mapping query with 4 input parameters
+
+
+
+
+
+
+
+ The field we should split and read the second object from (default: id)
+ The command to execute
+
+
+
+
+
+ Perform a multi mapping query with 5 input parameters
+
+
+
+
+ Perform a multi mapping query with 5 input parameters
+
+
+
+
+ Perform a multi mapping query with 6 input parameters
+
+
+
+
+ Perform a multi mapping query with 6 input parameters
+
+
+
+
+ Perform a multi mapping query with 7 input parameters
+
+
+
+
+ Perform a multi mapping query with 7 input parameters
+
+
+
+
+ Perform a multi mapping query with arbitrary input parameters
+
+ The return type
+
+
+ array of types in the recordset
+
+
+
+
+ The Field we should split and read the second object from (default: id)
+ Number of seconds before command execution timeout
+ Is it a stored proc or a batch?
+
+
+
+
+ Execute a command that returns multiple result sets, and access each in turn
+
+
+
+
+ Execute a command that returns multiple result sets, and access each in turn
+
+
+
+
+ Execute parameterized SQL and return an
+
+ An that can be used to iterate over the results of the SQL query.
+
+ This is typically used when the results of a query are not processed by Dapper, for example, used to fill a
+ or .
+
+
+
+
+
+
+
+
+
+ Execute parameterized SQL and return an
+
+ An that can be used to iterate over the results of the SQL query.
+
+ This is typically used when the results of a query are not processed by Dapper, for example, used to fill a
+ or .
+
+
+
+
+ Execute parameterized SQL that selects a single value
+
+ The first cell selected
+
+
+
+ Execute parameterized SQL that selects a single value
+
+ The first cell selected
+
+
+
+ Execute parameterized SQL that selects a single value
+
+ The first cell selected
+
+
+
+ Execute parameterized SQL that selects a single value
+
+ The first cell selected
+
+
+
+ Called if the query cache is purged via PurgeQueryCache
+
+
+
+
+ Purge the query cache
+
+
+
+
+ Return a count of all the cached queries by dapper
+
+
+
+
+
+ Return a list of all the queries cached by dapper
+
+
+
+
+
+
+ Deep diagnostics only: find any hash collisions in the cache
+
+
+
+
+
+ Clear the registered type handlers
+
+
+
+
+ Configure the specified type to be mapped to a given db-type
+
+
+
+
+ Configure the specified type to be processed by a custom handler
+
+
+
+
+ Configure the specified type to be processed by a custom handler
+
+
+
+
+ Configure the specified type to be processed by a custom handler
+
+
+
+
+ Get the DbType that maps to a given value
+
+
+
+
+ OBSOLETE: For internal usage only. Lookup the DbType and handler for a given Type and member
+
+
+
+
+ Obtains the data as a list; if it is *already* a list, the original object is returned without
+ any duplication; otherwise, ToList() is invoked.
+
+
+
+
+ Execute parameterized SQL
+
+ Number of rows affected
+
+
+
+ Execute parameterized SQL
+
+ Number of rows affected
+
+
+
+ Execute parameterized SQL that selects a single value
+
+ The first cell selected
+
+
+
+ Execute parameterized SQL that selects a single value
+
+ The first cell selected
+
+
+
+ Execute parameterized SQL that selects a single value
+
+ The first cell selected
+
+
+
+ Execute parameterized SQL that selects a single value
+
+ The first cell selected
+
+
+
+ Execute parameterized SQL and return an
+
+ An that can be used to iterate over the results of the SQL query.
+
+ This is typically used when the results of a query are not processed by Dapper, for example, used to fill a
+ or .
+
+
+
+
+
+
+
+
+
+ Execute parameterized SQL and return an
+
+ An that can be used to iterate over the results of the SQL query.
+
+ This is typically used when the results of a query are not processed by Dapper, for example, used to fill a
+ or .
+
+
+
+
+ Execute parameterized SQL and return an
+
+ An that can be used to iterate over the results of the SQL query.
+
+ This is typically used when the results of a query are not processed by Dapper, for example, used to fill a
+ or .
+
+
+
+
+ Return a sequence of dynamic objects with properties matching the columns
+
+ Note: each row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Return a dynamic object with properties matching the columns
+
+ Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Return a dynamic object with properties matching the columns
+
+ Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Return a dynamic object with properties matching the columns
+
+ Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Return a dynamic object with properties matching the columns
+
+ Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Executes a query, returning the data typed as per T
+
+ A sequence of data of the supplied type; if a basic type (int, string, etc) is queried then the data from the first column in assumed, otherwise an instance is
+ created per row, and a direct column-name===member-name mapping is assumed (case insensitive).
+
+
+
+
+ Executes a single-row query, returning the data typed as per T
+
+ A sequence of data of the supplied type; if a basic type (int, string, etc) is queried then the data from the first column in assumed, otherwise an instance is
+ created per row, and a direct column-name===member-name mapping is assumed (case insensitive).
+
+
+
+
+ Executes a single-row query, returning the data typed as per T
+
+ A sequence of data of the supplied type; if a basic type (int, string, etc) is queried then the data from the first column in assumed, otherwise an instance is
+ created per row, and a direct column-name===member-name mapping is assumed (case insensitive).
+
+
+
+
+ Executes a single-row query, returning the data typed as per T
+
+ A sequence of data of the supplied type; if a basic type (int, string, etc) is queried then the data from the first column in assumed, otherwise an instance is
+ created per row, and a direct column-name===member-name mapping is assumed (case insensitive).
+
+
+
+
+ Executes a single-row query, returning the data typed as per T
+
+ A sequence of data of the supplied type; if a basic type (int, string, etc) is queried then the data from the first column in assumed, otherwise an instance is
+ created per row, and a direct column-name===member-name mapping is assumed (case insensitive).
+
+
+
+
+ Executes a single-row query, returning the data typed as per the Type suggested
+
+ A sequence of data of the supplied type; if a basic type (int, string, etc) is queried then the data from the first column in assumed, otherwise an instance is
+ created per row, and a direct column-name===member-name mapping is assumed (case insensitive).
+
+
+
+
+ Executes a single-row query, returning the data typed as per the Type suggested
+
+ A sequence of data of the supplied type; if a basic type (int, string, etc) is queried then the data from the first column in assumed, otherwise an instance is
+ created per row, and a direct column-name===member-name mapping is assumed (case insensitive).
+
+
+
+
+ Executes a single-row query, returning the data typed as per the Type suggested
+
+ A sequence of data of the supplied type; if a basic type (int, string, etc) is queried then the data from the first column in assumed, otherwise an instance is
+ created per row, and a direct column-name===member-name mapping is assumed (case insensitive).
+
+
+
+
+ Executes a single-row query, returning the data typed as per the Type suggested
+
+ A sequence of data of the supplied type; if a basic type (int, string, etc) is queried then the data from the first column in assumed, otherwise an instance is
+ created per row, and a direct column-name===member-name mapping is assumed (case insensitive).
+
+
+
+
+ Executes a single-row query, returning the data typed as per the Type suggested
+
+ A sequence of data of the supplied type; if a basic type (int, string, etc) is queried then the data from the first column in assumed, otherwise an instance is
+ created per row, and a direct column-name===member-name mapping is assumed (case insensitive).
+
+
+
+
+ Executes a query, returning the data typed as per T
+
+ the dynamic param may seem a bit odd, but this works around a major usability issue in vs, if it is Object vs completion gets annoying. Eg type new [space] get new object
+ A sequence of data of the supplied type; if a basic type (int, string, etc) is queried then the data from the first column in assumed, otherwise an instance is
+ created per row, and a direct column-name===member-name mapping is assumed (case insensitive).
+
+
+
+
+ Executes a query, returning the data typed as per T
+
+ the dynamic param may seem a bit odd, but this works around a major usability issue in vs, if it is Object vs completion gets annoying. Eg type new [space] get new object
+ A single instance or null of the supplied type; if a basic type (int, string, etc) is queried then the data from the first column in assumed, otherwise an instance is
+ created per row, and a direct column-name===member-name mapping is assumed (case insensitive).
+
+
+
+
+ Executes a query, returning the data typed as per T
+
+ the dynamic param may seem a bit odd, but this works around a major usability issue in vs, if it is Object vs completion gets annoying. Eg type new [space] get new object
+ A single or null instance of the supplied type; if a basic type (int, string, etc) is queried then the data from the first column in assumed, otherwise an instance is
+ created per row, and a direct column-name===member-name mapping is assumed (case insensitive).
+
+
+
+
+ Executes a query, returning the data typed as per T
+
+ the dynamic param may seem a bit odd, but this works around a major usability issue in vs, if it is Object vs completion gets annoying. Eg type new [space] get new object
+ A single instance of the supplied type; if a basic type (int, string, etc) is queried then the data from the first column in assumed, otherwise an instance is
+ created per row, and a direct column-name===member-name mapping is assumed (case insensitive).
+
+
+
+
+ Executes a query, returning the data typed as per T
+
+ the dynamic param may seem a bit odd, but this works around a major usability issue in vs, if it is Object vs completion gets annoying. Eg type new [space] get new object
+ A single instance of the supplied type; if a basic type (int, string, etc) is queried then the data from the first column in assumed, otherwise an instance is
+ created per row, and a direct column-name===member-name mapping is assumed (case insensitive).
+
+
+
+
+ Execute a command that returns multiple result sets, and access each in turn
+
+
+
+
+ Execute a command that returns multiple result sets, and access each in turn
+
+
+
+
+ Maps a query to objects
+
+ The first type in the record set
+ The second type in the record set
+ The return type
+
+
+
+
+
+
+ The Field we should split and read the second object from (default: id)
+ Number of seconds before command execution timeout
+ Is it a stored proc or a batch?
+
+
+
+
+ Maps a query to objects
+
+
+
+
+
+
+
+
+
+
+
+ The Field we should split and read the second object from (default: id)
+ Number of seconds before command execution timeout
+
+
+
+
+
+ Perform a multi mapping query with 4 input parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Perform a multi mapping query with 5 input parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Perform a multi mapping query with 6 input parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Perform a multi mapping query with 7 input parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Perform a multi mapping query with arbitrary input parameters
+
+ The return type
+
+
+ array of types in the record set
+
+
+
+
+ The Field we should split and read the second object from (default: id)
+ Number of seconds before command execution timeout
+ Is it a stored proc or a batch?
+
+
+
+
+ Internal use only
+
+
+
+
+
+
+ Internal use only
+
+
+
+
+ Internal use only
+
+
+
+
+ Internal use only
+
+
+
+
+ OBSOLETE: For internal usage only. Sanitizes the paramter value with proper type casting.
+
+
+
+
+ Replace all literal tokens with their text form
+
+
+
+
+ Convert numeric values to their string form for SQL literal purposes
+
+
+
+
+ Internal use only
+
+
+
+
+ Gets type-map for the given type
+
+ Type map instance, default is to create new instance of DefaultTypeMap
+
+
+
+ Gets type-map for the given type
+
+ Type map implementation, DefaultTypeMap instance if no override present
+
+
+
+ Set custom mapping for type deserializers
+
+ Entity type to override
+ Mapping rules impementation, null to remove custom map
+
+
+
+ Internal use only
+
+
+
+
+
+
+
+
+
+
+ Throws a data exception, only used internally
+
+
+
+
+ How should connection strings be compared for equivalence? Defaults to StringComparer.Ordinal.
+ Providing a custom implementation can be useful for allowing multi-tenancy databases with identical
+ schema to share strategies. Note that usual equivalence rules apply: any equivalent connection strings
+ MUST yield the same hash-code.
+
+
+
+
+ Key used to indicate the type name associated with a DataTable
+
+
+
+
+ Used to pass a DataTable as a TableValuedParameter
+
+
+
+
+ Associate a DataTable with a type name
+
+
+
+
+ Fetch the type name associated with a DataTable
+
+
+
+
+ Used to pass a IEnumerable<SqlDataRecord> as a TableValuedParameter
+
+
+
+
+ Dummy type for excluding from multi-map
+
+
+
+
+ The grid reader provides interfaces for reading multiple result sets from a Dapper query
+
+
+
+
+ Read the next grid of results, returned as a dynamic object
+
+ Note: each row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Read an individual row of the next grid of results, returned as a dynamic object
+
+ Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Read an individual row of the next grid of results, returned as a dynamic object
+
+ Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Read an individual row of the next grid of results, returned as a dynamic object
+
+ Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Read an individual row of the next grid of results, returned as a dynamic object
+
+ Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Read the next grid of results
+
+
+
+
+ Read an individual row of the next grid of results
+
+
+
+
+ Read an individual row of the next grid of results
+
+
+
+
+ Read an individual row of the next grid of results
+
+
+
+
+ Read an individual row of the next grid of results
+
+
+
+
+ Read the next grid of results
+
+
+
+
+ Read an individual row of the next grid of results
+
+
+
+
+ Read an individual row of the next grid of results
+
+
+
+
+ Read an individual row of the next grid of results
+
+
+
+
+ Read an individual row of the next grid of results
+
+
+
+
+ Read the next grid of results, returned as a dynamic object
+
+ Note: each row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Read an individual row of the next grid of results, returned as a dynamic object
+
+ Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Read an individual row of the next grid of results, returned as a dynamic object
+
+ Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Read an individual row of the next grid of results, returned as a dynamic object
+
+ Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Read an individual row of the next grid of results, returned as a dynamic object
+
+ Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Read the next grid of results
+
+
+
+
+ Read an individual row of the next grid of results
+
+
+
+
+ Read an individual row of the next grid of results
+
+
+
+
+ Read an individual row of the next grid of results
+
+
+
+
+ Read an individual row of the next grid of results
+
+
+
+
+ Read the next grid of results
+
+
+
+
+ Read an individual row of the next grid of results
+
+
+
+
+ Read an individual row of the next grid of results
+
+
+
+
+ Read an individual row of the next grid of results
+
+
+
+
+ Read an individual row of the next grid of results
+
+
+
+
+ Read multiple objects from a single record set on the grid
+
+
+
+
+ Read multiple objects from a single record set on the grid
+
+
+
+
+ Read multiple objects from a single record set on the grid
+
+
+
+
+ Read multiple objects from a single record set on the grid
+
+
+
+
+ Read multiple objects from a single record set on the grid
+
+
+
+
+ Read multiple objects from a single record set on the grid
+
+
+
+
+ Read multiple objects from a single record set on the grid
+
+
+
+
+ Has the underlying reader been consumed?
+
+
+
+
+ The command associated with the reader
+
+
+
+
+ Dispose the grid, closing and disposing both the underlying reader and command.
+
+
+
+
+ Implement this interface to pass an arbitrary db specific parameter to Dapper
+
+
+
+
+ Add the parameter needed to the command before it executes
+
+ The raw command prior to execution
+ Parameter name
+
+
+
+ Parses a data reader to a sequence of data of the supplied type. Used for deserializing a reader without a connection, etc.
+
+
+
+
+ Parses a data reader to a sequence of data of the supplied type (as object). Used for deserializing a reader without a connection, etc.
+
+
+
+
+ Parses a data reader to a sequence of dynamic. Used for deserializing a reader without a connection, etc.
+
+
+
+
+ Gets the row parser for a specific row on a data reader. This allows for type switching every row based on, for example, a TypeId column.
+ You could return a collection of the base type but have each more specific.
+
+ The data reader to get the parser for the current row from
+ The type to get the parser for
+ The start column index of the object (default 0)
+ The length of columns to read (default -1 = all fields following startIndex)
+ Return null if we can't find the first column? (default false)
+ A parser for this specific object from this row.
+
+
+
+ Gets the row parser for a specific row on a data reader. This allows for type switching every row based on, for example, a TypeId column.
+ You could return a collection of the base type but have each more specific.
+
+ The data reader to get the parser for the current row from
+ The type to get the parser for
+ The start column index of the object (default 0)
+ The length of columns to read (default -1 = all fields following startIndex)
+ Return null if we can't find the first column? (default false)
+ A parser for this specific object from this row.
+
+ var result = new List<BaseType>();
+ using (var reader = connection.ExecuteReader(@"
+ select 'abc' as Name, 1 as Type, 3.0 as Value
+ union all
+ select 'def' as Name, 2 as Type, 4.0 as Value"))
+ {
+ if (reader.Read())
+ {
+ var toFoo = reader.GetRowParser<BaseType>(typeof(Foo));
+ var toBar = reader.GetRowParser<BaseType>(typeof(Bar));
+ var col = reader.GetOrdinal("Type");
+ do
+ {
+ switch (reader.GetInt32(col))
+ {
+ case 1:
+ result.Add(toFoo(reader));
+ break;
+ case 2:
+ result.Add(toBar(reader));
+ break;
+ }
+ } while (reader.Read());
+ }
+ }
+
+ abstract class BaseType
+ {
+ public abstract int Type { get; }
+ }
+ class Foo : BaseType
+ {
+ public string Name { get; set; }
+ public override int Type => 1;
+ }
+ class Bar : BaseType
+ {
+ public float Value { get; set; }
+ public override int Type => 2;
+ }
+
+
+
+
+ Identity of a cached query in Dapper, used for extensibility
+
+
+
+
+ Create an identity for use with DynamicParameters, internal use only
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The sql
+
+
+
+
+ The command type
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Compare 2 Identity objects
+
+
+
+
+
+
+ Implement this interface to pass an arbitrary db specific set of parameters to Dapper
+
+
+
+
+ Add all the parameters needed to the command just before it executes
+
+ The raw command prior to execution
+ Information about the query
+
+
+
+ Implements this interface to provide custom member mapping
+
+
+
+
+ Source DataReader column name
+
+
+
+
+ Target member type
+
+
+
+
+ Target property
+
+
+
+
+ Target field
+
+
+
+
+ Target constructor parameter
+
+
+
+
+ Extends IDynamicParameters with facilities for executing callbacks after commands have completed
+
+
+
+
+ Invoked when the command has executed
+
+
+
+
+ Extends IDynamicParameters providing by-name lookup of parameter values
+
+
+
+
+ Get the value of the specified parameter (return null if not found)
+
+
+
+
+ Implement this interface to perform custom type-based parameter handling and value parsing
+
+
+
+
+ Assign the value of a parameter before a command executes
+
+ The parameter to configure
+ Parameter value
+
+
+
+ Parse a database value back to a typed value
+
+ The value from the database
+ The type to parse to
+ The typed value
+
+
+
+ Implement this interface to change default mapping of reader columns to type members
+
+
+
+
+ Finds best constructor
+
+ DataReader column names
+ DataReader column types
+ Matching constructor or default one
+
+
+
+ Returns a constructor which should *always* be used.
+
+ Parameters will be default values, nulls for reference types and zero'd for value types.
+
+ Use this class to force object creation away from parameterless constructors you don't control.
+
+
+
+
+ Gets mapping for constructor parameter
+
+ Constructor to resolve
+ DataReader column name
+ Mapping implementation
+
+
+
+ Gets member mapping for column
+
+ DataReader column name
+ Mapping implementation
+
+
+
+ This is a micro-cache; suitable when the number of terms is controllable (a few hundred, for example),
+ and strictly append-only; you cannot change existing values. All key matches are on **REFERENCE**
+ equality. The type is fully thread-safe.
+
+
+
+
+ Represents a placeholder for a value that should be replaced as a literal value in the resulting sql
+
+
+
+
+ The text in the original command that should be replaced
+
+
+
+
+ The name of the member referred to by the token
+
+
+
+
+ Permits specifying certain SqlMapper values globally.
+
+
+
+
+ Resets all Settings to their default values
+
+
+
+
+ Specifies the default Command Timeout for all Queries
+
+
+
+
+ Indicates whether nulls in data are silently ignored (default) vs actively applied and assigned to members
+
+
+
+
+ Should list expansions be padded with null-valued parameters, to prevent query-plan saturation? For example,
+ an 'in @foo' expansion with 7, 8 or 9 values will be sent as a list of 10 values, with 3, 2 or 1 of them null.
+ The padding size is relative to the size of the list; "next 10" under 150, "next 50" under 500,
+ "next 100" under 1500, etc.
+
+
+ Caution: this should be treated with care if your DB provider (or the specific configuration) allows for null
+ equality (aka "ansi nulls off"), as this may change the intent of your query; as such, this is disabled by
+ default and must be enabled.
+
+
+
+
+ If set (non-negative), when performing in-list expansions of integer types ("where id in @ids", etc), switch to a string_split based
+ operation if there are more than this many elements. Note that this feautre requires SQL Server 2016 / compatibility level 130 (or above).
+
+
+
+
+ Base-class for simple type-handlers
+
+
+
+
+ Assign the value of a parameter before a command executes
+
+ The parameter to configure
+ Parameter value
+
+
+
+ Parse a database value back to a typed value
+
+ The value from the database
+ The typed value
+
+
+
+ Base-class for simple type-handlers that are based around strings
+
+
+
+
+ Parse a string into the expected type (the string will never be null)
+
+
+
+
+ Format an instace into a string (the instance will never be null)
+
+
+
+
+ Assign the value of a parameter before a command executes
+
+ The parameter to configure
+ Parameter value
+
+
+
+ Parse a database value back to a typed value
+
+ The value from the database
+ The typed value
+
+
+
+ Not intended for direct usage
+
+
+
+
+ Not intended for direct usage
+
+
+
+
+ Not intended for direct usage
+
+
+
+
+ A type handler for data-types that are supported by the underlying provider, but which need
+ a well-known UdtTypeName to be specified
+
+
+
+
+ Creates a new instance of UdtTypeHandler with the specified UdtTypeName
+
+
+
+
+ Used to pass a DataTable as a TableValuedParameter
+
+
+
+
+ Create a new instance of TableValuedParameter
+
+
+
+
+ Create a new instance of TableValuedParameter
+
+
+
+
+ Describes a reader that controls the lifetime of both a command and a reader,
+ exposing the downstream command/reader as properties.
+
+
+
+
+ Obtain the underlying reader
+
+
+
+
+ Obtain the underlying command
+
+
+
+
diff --git a/csharp/marketconnectionNET/packages/Dapper.1.50.2/lib/netstandard1.3/Dapper.dll b/csharp/marketconnectionNET/packages/Dapper.1.50.2/lib/netstandard1.3/Dapper.dll
new file mode 100644
index 0000000..c71e867
Binary files /dev/null and b/csharp/marketconnectionNET/packages/Dapper.1.50.2/lib/netstandard1.3/Dapper.dll differ
diff --git a/csharp/marketconnectionNET/packages/Dapper.1.50.2/lib/netstandard1.3/Dapper.xml b/csharp/marketconnectionNET/packages/Dapper.1.50.2/lib/netstandard1.3/Dapper.xml
new file mode 100644
index 0000000..50c0e32
--- /dev/null
+++ b/csharp/marketconnectionNET/packages/Dapper.1.50.2/lib/netstandard1.3/Dapper.xml
@@ -0,0 +1,1891 @@
+
+
+
+ Dapper
+
+
+
+
+ Represents the key aspects of a sql operation
+
+
+
+
+ The command (sql or a stored-procedure name) to execute
+
+
+
+
+ The parameters associated with the command
+
+
+
+
+ The active transaction for the command
+
+
+
+
+ The effective timeout for the command
+
+
+
+
+ The type of command that the command-text represents
+
+
+
+
+ Should data be buffered before returning?
+
+
+
+
+ Should the plan for this query be cached?
+
+
+
+
+ Additional state flags against this command
+
+
+
+
+ Can async queries be pipelined?
+
+
+
+
+ Initialize the command definition
+
+
+
+
+ For asynchronous operations, the cancellation-token
+
+
+
+
+ Additional state flags that control command behaviour
+
+
+
+
+ No additional flags
+
+
+
+
+ Should data be buffered before returning?
+
+
+
+
+ Can async queries be pipelined?
+
+
+
+
+ Should the plan cache be bypassed?
+
+
+
+
+ Implements custom property mapping by user provided criteria (usually presence of some custom attribute with column to member mapping)
+
+
+
+
+ Creates custom property mapping
+
+ Target entity type
+ Property selector based on target type and DataReader column name
+
+
+
+ Always returns default constructor
+
+ DataReader column names
+ DataReader column types
+ Default constructor
+
+
+
+ Always returns null
+
+
+
+
+
+ Not implemented as far as default constructor used for all cases
+
+
+
+
+
+
+
+ Returns property based on selector strategy
+
+ DataReader column name
+ Poperty member map
+
+
+
+ This class represents a SQL string, it can be used if you need to denote your parameter is a Char vs VarChar vs nVarChar vs nChar
+
+
+
+
+ Default value for IsAnsi.
+
+
+
+
+ A value to set the default value of strings
+ going through Dapper. Default is 4000, any value larger than this
+ field will not have the default value applied.
+
+
+
+
+ Create a new DbString
+
+
+
+
+ Ansi vs Unicode
+
+
+
+
+ Fixed length
+
+
+
+
+ Length of the string -1 for max
+
+
+
+
+ The value of the string
+
+
+
+
+ Add the parameter to the command... internal use only
+
+
+
+
+
+
+ Represents default type mapping strategy used by Dapper
+
+
+
+
+ Creates default type map
+
+ Entity type
+
+
+
+ Finds best constructor
+
+ DataReader column names
+ DataReader column types
+ Matching constructor or default one
+
+
+
+ Returns the constructor, if any, that has the ExplicitConstructorAttribute on it.
+
+
+
+
+ Gets mapping for constructor parameter
+
+ Constructor to resolve
+ DataReader column name
+ Mapping implementation
+
+
+
+ Gets member mapping for column
+
+ DataReader column name
+ Mapping implementation
+
+
+
+ Should column names like User_Id be allowed to match properties/fields like UserId ?
+
+
+
+
+ The settable properties for this typemap
+
+
+
+
+ A bag of parameters that can be passed to the Dapper Query and Execute methods
+
+
+
+
+ construct a dynamic parameter bag
+
+
+
+
+ construct a dynamic parameter bag
+
+ can be an anonymous type or a DynamicParameters bag
+
+
+
+ Append a whole object full of params to the dynamic
+ EG: AddDynamicParams(new {A = 1, B = 2}) // will add property A and B to the dynamic
+
+
+
+
+
+ Add a parameter to this dynamic parameter list
+
+
+
+
+ Add a parameter to this dynamic parameter list
+
+
+
+
+ If true, the command-text is inspected and only values that are clearly used are included on the connection
+
+
+
+
+ Add all the parameters needed to the command just before it executes
+
+ The raw command prior to execution
+ Information about the query
+
+
+
+ All the names of the param in the bag, use Get to yank them out
+
+
+
+
+ Get the value of a parameter
+
+
+
+ The value, note DBNull.Value is not returned, instead the value is returned as null
+
+
+
+ Allows you to automatically populate a target property/field from output parameters. It actually
+ creates an InputOutput parameter, so you can still pass data in.
+
+
+ The object whose property/field you wish to populate.
+ A MemberExpression targeting a property/field of the target (or descendant thereof.)
+
+ The size to set on the parameter. Defaults to 0, or DbString.DefaultLength in case of strings.
+ The DynamicParameters instance
+
+
+
+ Tell Dapper to use an explicit constructor, passing nulls or 0s for all parameters
+
+
+
+
+ Handles variances in features per DBMS
+
+
+
+
+ Gets the feature set based on the passed connection
+
+
+
+
+ True if the db supports array columns e.g. Postgresql
+
+
+
+
+ Represents simple member map for one of target parameter or property or field to source DataReader column
+
+
+
+
+ Creates instance for simple property mapping
+
+ DataReader column name
+ Target property
+
+
+
+ Creates instance for simple field mapping
+
+ DataReader column name
+ Target property
+
+
+
+ Creates instance for simple constructor parameter mapping
+
+ DataReader column name
+ Target constructor parameter
+
+
+
+ DataReader column name
+
+
+
+
+ Target member type
+
+
+
+
+ Target property
+
+
+
+
+ Target field
+
+
+
+
+ Target constructor parameter
+
+
+
+
+ Dapper, a light weight object mapper for ADO.NET
+
+
+
+
+ Execute a query asynchronously using .NET 4.5 Task.
+
+ Note: each row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Execute a query asynchronously using .NET 4.5 Task.
+
+ Note: each row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Execute a single-row query asynchronously using .NET 4.5 Task.
+
+ Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Execute a single-row query asynchronously using .NET 4.5 Task.
+
+ Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Execute a single-row query asynchronously using .NET 4.5 Task.
+
+ Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Execute a single-row query asynchronously using .NET 4.5 Task.
+
+ Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Execute a query asynchronously using .NET 4.5 Task.
+
+
+
+
+ Execute a single-row query asynchronously using .NET 4.5 Task.
+
+
+
+
+ Execute a single-row query asynchronously using .NET 4.5 Task.
+
+
+
+
+ Execute a single-row query asynchronously using .NET 4.5 Task.
+
+
+
+
+ Execute a single-row query asynchronously using .NET 4.5 Task.
+
+
+
+
+ Execute a query asynchronously using .NET 4.5 Task.
+
+
+
+
+ Execute a single-row query asynchronously using .NET 4.5 Task.
+
+
+
+
+ Execute a single-row query asynchronously using .NET 4.5 Task.
+
+
+
+
+ Execute a single-row query asynchronously using .NET 4.5 Task.
+
+
+
+
+ Execute a single-row query asynchronously using .NET 4.5 Task.
+
+
+
+
+ Execute a query asynchronously using .NET 4.5 Task.
+
+
+
+
+ Execute a query asynchronously using .NET 4.5 Task.
+
+
+
+
+ Execute a single-row query asynchronously using .NET 4.5 Task.
+
+
+
+
+ Execute a single-row query asynchronously using .NET 4.5 Task.
+
+
+
+
+ Execute a single-row query asynchronously using .NET 4.5 Task.
+
+
+
+
+ Execute a single-row query asynchronously using .NET 4.5 Task.
+
+
+
+
+ Execute a command asynchronously using .NET 4.5 Task.
+
+
+
+
+ Execute a command asynchronously using .NET 4.5 Task.
+
+
+
+
+ Maps a query to objects
+
+ The first type in the recordset
+ The second type in the recordset
+ The return type
+
+
+
+
+
+
+ The field we should split and read the second object from (default: id)
+ Number of seconds before command execution timeout
+ Is it a stored proc or a batch?
+
+
+
+
+ Maps a query to objects
+
+ The first type in the recordset
+ The second type in the recordset
+ The return type
+
+ The field we should split and read the second object from (default: id)
+ The command to execute
+
+
+
+
+
+ Maps a query to objects
+
+
+
+
+
+
+
+
+
+
+
+ The Field we should split and read the second object from (default: id)
+ Number of seconds before command execution timeout
+
+
+
+
+
+ Maps a query to objects
+
+
+
+
+
+
+ The field we should split and read the second object from (default: id)
+ The command to execute
+
+
+
+
+
+ Perform a multi mapping query with 4 input parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Perform a multi mapping query with 4 input parameters
+
+
+
+
+
+
+
+ The field we should split and read the second object from (default: id)
+ The command to execute
+
+
+
+
+
+ Perform a multi mapping query with 5 input parameters
+
+
+
+
+ Perform a multi mapping query with 5 input parameters
+
+
+
+
+ Perform a multi mapping query with 6 input parameters
+
+
+
+
+ Perform a multi mapping query with 6 input parameters
+
+
+
+
+ Perform a multi mapping query with 7 input parameters
+
+
+
+
+ Perform a multi mapping query with 7 input parameters
+
+
+
+
+ Perform a multi mapping query with arbitrary input parameters
+
+ The return type
+
+
+ array of types in the recordset
+
+
+
+
+ The Field we should split and read the second object from (default: id)
+ Number of seconds before command execution timeout
+ Is it a stored proc or a batch?
+
+
+
+
+ Execute a command that returns multiple result sets, and access each in turn
+
+
+
+
+ Execute a command that returns multiple result sets, and access each in turn
+
+
+
+
+ Execute parameterized SQL and return an
+
+ An that can be used to iterate over the results of the SQL query.
+
+ This is typically used when the results of a query are not processed by Dapper, for example, used to fill a
+ or .
+
+
+
+
+
+
+
+
+
+ Execute parameterized SQL and return an
+
+ An that can be used to iterate over the results of the SQL query.
+
+ This is typically used when the results of a query are not processed by Dapper, for example, used to fill a
+ or .
+
+
+
+
+ Execute parameterized SQL that selects a single value
+
+ The first cell selected
+
+
+
+ Execute parameterized SQL that selects a single value
+
+ The first cell selected
+
+
+
+ Execute parameterized SQL that selects a single value
+
+ The first cell selected
+
+
+
+ Execute parameterized SQL that selects a single value
+
+ The first cell selected
+
+
+
+ Called if the query cache is purged via PurgeQueryCache
+
+
+
+
+ Purge the query cache
+
+
+
+
+ Return a count of all the cached queries by dapper
+
+
+
+
+
+ Return a list of all the queries cached by dapper
+
+
+
+
+
+
+ Deep diagnostics only: find any hash collisions in the cache
+
+
+
+
+
+ Clear the registered type handlers
+
+
+
+
+ Configure the specified type to be mapped to a given db-type
+
+
+
+
+ Configure the specified type to be processed by a custom handler
+
+
+
+
+ Configure the specified type to be processed by a custom handler
+
+
+
+
+ Configure the specified type to be processed by a custom handler
+
+
+
+
+ Get the DbType that maps to a given value
+
+
+
+
+ OBSOLETE: For internal usage only. Lookup the DbType and handler for a given Type and member
+
+
+
+
+ Obtains the data as a list; if it is *already* a list, the original object is returned without
+ any duplication; otherwise, ToList() is invoked.
+
+
+
+
+ Execute parameterized SQL
+
+ Number of rows affected
+
+
+
+ Execute parameterized SQL
+
+ Number of rows affected
+
+
+
+ Execute parameterized SQL that selects a single value
+
+ The first cell selected
+
+
+
+ Execute parameterized SQL that selects a single value
+
+ The first cell selected
+
+
+
+ Execute parameterized SQL that selects a single value
+
+ The first cell selected
+
+
+
+ Execute parameterized SQL that selects a single value
+
+ The first cell selected
+
+
+
+ Execute parameterized SQL and return an
+
+ An that can be used to iterate over the results of the SQL query.
+
+ This is typically used when the results of a query are not processed by Dapper, for example, used to fill a
+ or .
+
+
+
+
+
+
+
+
+
+ Execute parameterized SQL and return an
+
+ An that can be used to iterate over the results of the SQL query.
+
+ This is typically used when the results of a query are not processed by Dapper, for example, used to fill a
+ or .
+
+
+
+
+ Execute parameterized SQL and return an
+
+ An that can be used to iterate over the results of the SQL query.
+
+ This is typically used when the results of a query are not processed by Dapper, for example, used to fill a
+ or .
+
+
+
+
+ Return a sequence of dynamic objects with properties matching the columns
+
+ Note: each row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Return a dynamic object with properties matching the columns
+
+ Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Return a dynamic object with properties matching the columns
+
+ Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Return a dynamic object with properties matching the columns
+
+ Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Return a dynamic object with properties matching the columns
+
+ Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Executes a query, returning the data typed as per T
+
+ A sequence of data of the supplied type; if a basic type (int, string, etc) is queried then the data from the first column in assumed, otherwise an instance is
+ created per row, and a direct column-name===member-name mapping is assumed (case insensitive).
+
+
+
+
+ Executes a single-row query, returning the data typed as per T
+
+ A sequence of data of the supplied type; if a basic type (int, string, etc) is queried then the data from the first column in assumed, otherwise an instance is
+ created per row, and a direct column-name===member-name mapping is assumed (case insensitive).
+
+
+
+
+ Executes a single-row query, returning the data typed as per T
+
+ A sequence of data of the supplied type; if a basic type (int, string, etc) is queried then the data from the first column in assumed, otherwise an instance is
+ created per row, and a direct column-name===member-name mapping is assumed (case insensitive).
+
+
+
+
+ Executes a single-row query, returning the data typed as per T
+
+ A sequence of data of the supplied type; if a basic type (int, string, etc) is queried then the data from the first column in assumed, otherwise an instance is
+ created per row, and a direct column-name===member-name mapping is assumed (case insensitive).
+
+
+
+
+ Executes a single-row query, returning the data typed as per T
+
+ A sequence of data of the supplied type; if a basic type (int, string, etc) is queried then the data from the first column in assumed, otherwise an instance is
+ created per row, and a direct column-name===member-name mapping is assumed (case insensitive).
+
+
+
+
+ Executes a single-row query, returning the data typed as per the Type suggested
+
+ A sequence of data of the supplied type; if a basic type (int, string, etc) is queried then the data from the first column in assumed, otherwise an instance is
+ created per row, and a direct column-name===member-name mapping is assumed (case insensitive).
+
+
+
+
+ Executes a single-row query, returning the data typed as per the Type suggested
+
+ A sequence of data of the supplied type; if a basic type (int, string, etc) is queried then the data from the first column in assumed, otherwise an instance is
+ created per row, and a direct column-name===member-name mapping is assumed (case insensitive).
+
+
+
+
+ Executes a single-row query, returning the data typed as per the Type suggested
+
+ A sequence of data of the supplied type; if a basic type (int, string, etc) is queried then the data from the first column in assumed, otherwise an instance is
+ created per row, and a direct column-name===member-name mapping is assumed (case insensitive).
+
+
+
+
+ Executes a single-row query, returning the data typed as per the Type suggested
+
+ A sequence of data of the supplied type; if a basic type (int, string, etc) is queried then the data from the first column in assumed, otherwise an instance is
+ created per row, and a direct column-name===member-name mapping is assumed (case insensitive).
+
+
+
+
+ Executes a single-row query, returning the data typed as per the Type suggested
+
+ A sequence of data of the supplied type; if a basic type (int, string, etc) is queried then the data from the first column in assumed, otherwise an instance is
+ created per row, and a direct column-name===member-name mapping is assumed (case insensitive).
+
+
+
+
+ Executes a query, returning the data typed as per T
+
+ the dynamic param may seem a bit odd, but this works around a major usability issue in vs, if it is Object vs completion gets annoying. Eg type new [space] get new object
+ A sequence of data of the supplied type; if a basic type (int, string, etc) is queried then the data from the first column in assumed, otherwise an instance is
+ created per row, and a direct column-name===member-name mapping is assumed (case insensitive).
+
+
+
+
+ Executes a query, returning the data typed as per T
+
+ the dynamic param may seem a bit odd, but this works around a major usability issue in vs, if it is Object vs completion gets annoying. Eg type new [space] get new object
+ A single instance or null of the supplied type; if a basic type (int, string, etc) is queried then the data from the first column in assumed, otherwise an instance is
+ created per row, and a direct column-name===member-name mapping is assumed (case insensitive).
+
+
+
+
+ Executes a query, returning the data typed as per T
+
+ the dynamic param may seem a bit odd, but this works around a major usability issue in vs, if it is Object vs completion gets annoying. Eg type new [space] get new object
+ A single or null instance of the supplied type; if a basic type (int, string, etc) is queried then the data from the first column in assumed, otherwise an instance is
+ created per row, and a direct column-name===member-name mapping is assumed (case insensitive).
+
+
+
+
+ Executes a query, returning the data typed as per T
+
+ the dynamic param may seem a bit odd, but this works around a major usability issue in vs, if it is Object vs completion gets annoying. Eg type new [space] get new object
+ A single instance of the supplied type; if a basic type (int, string, etc) is queried then the data from the first column in assumed, otherwise an instance is
+ created per row, and a direct column-name===member-name mapping is assumed (case insensitive).
+
+
+
+
+ Executes a query, returning the data typed as per T
+
+ the dynamic param may seem a bit odd, but this works around a major usability issue in vs, if it is Object vs completion gets annoying. Eg type new [space] get new object
+ A single instance of the supplied type; if a basic type (int, string, etc) is queried then the data from the first column in assumed, otherwise an instance is
+ created per row, and a direct column-name===member-name mapping is assumed (case insensitive).
+
+
+
+
+ Execute a command that returns multiple result sets, and access each in turn
+
+
+
+
+ Execute a command that returns multiple result sets, and access each in turn
+
+
+
+
+ Maps a query to objects
+
+ The first type in the record set
+ The second type in the record set
+ The return type
+
+
+
+
+
+
+ The Field we should split and read the second object from (default: id)
+ Number of seconds before command execution timeout
+ Is it a stored proc or a batch?
+
+
+
+
+ Maps a query to objects
+
+
+
+
+
+
+
+
+
+
+
+ The Field we should split and read the second object from (default: id)
+ Number of seconds before command execution timeout
+
+
+
+
+
+ Perform a multi mapping query with 4 input parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Perform a multi mapping query with 5 input parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Perform a multi mapping query with 6 input parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Perform a multi mapping query with 7 input parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Perform a multi mapping query with arbitrary input parameters
+
+ The return type
+
+
+ array of types in the record set
+
+
+
+
+ The Field we should split and read the second object from (default: id)
+ Number of seconds before command execution timeout
+ Is it a stored proc or a batch?
+
+
+
+
+ Internal use only
+
+
+
+
+
+
+ Internal use only
+
+
+
+
+ Internal use only
+
+
+
+
+ Internal use only
+
+
+
+
+ OBSOLETE: For internal usage only. Sanitizes the paramter value with proper type casting.
+
+
+
+
+ Replace all literal tokens with their text form
+
+
+
+
+ Convert numeric values to their string form for SQL literal purposes
+
+
+
+
+ Internal use only
+
+
+
+
+ Gets type-map for the given type
+
+ Type map instance, default is to create new instance of DefaultTypeMap
+
+
+
+ Gets type-map for the given type
+
+ Type map implementation, DefaultTypeMap instance if no override present
+
+
+
+ Set custom mapping for type deserializers
+
+ Entity type to override
+ Mapping rules impementation, null to remove custom map
+
+
+
+ Internal use only
+
+
+
+
+
+
+
+
+
+
+ Throws a data exception, only used internally
+
+
+
+
+ How should connection strings be compared for equivalence? Defaults to StringComparer.Ordinal.
+ Providing a custom implementation can be useful for allowing multi-tenancy databases with identical
+ schema to share strategies. Note that usual equivalence rules apply: any equivalent connection strings
+ MUST yield the same hash-code.
+
+
+
+
+ Dummy type for excluding from multi-map
+
+
+
+
+ The grid reader provides interfaces for reading multiple result sets from a Dapper query
+
+
+
+
+ Read the next grid of results, returned as a dynamic object
+
+ Note: each row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Read an individual row of the next grid of results, returned as a dynamic object
+
+ Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Read an individual row of the next grid of results, returned as a dynamic object
+
+ Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Read an individual row of the next grid of results, returned as a dynamic object
+
+ Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Read an individual row of the next grid of results, returned as a dynamic object
+
+ Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Read the next grid of results
+
+
+
+
+ Read an individual row of the next grid of results
+
+
+
+
+ Read an individual row of the next grid of results
+
+
+
+
+ Read an individual row of the next grid of results
+
+
+
+
+ Read an individual row of the next grid of results
+
+
+
+
+ Read the next grid of results
+
+
+
+
+ Read an individual row of the next grid of results
+
+
+
+
+ Read an individual row of the next grid of results
+
+
+
+
+ Read an individual row of the next grid of results
+
+
+
+
+ Read an individual row of the next grid of results
+
+
+
+
+ Read the next grid of results, returned as a dynamic object
+
+ Note: each row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Read an individual row of the next grid of results, returned as a dynamic object
+
+ Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Read an individual row of the next grid of results, returned as a dynamic object
+
+ Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Read an individual row of the next grid of results, returned as a dynamic object
+
+ Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Read an individual row of the next grid of results, returned as a dynamic object
+
+ Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+
+
+
+ Read the next grid of results
+
+
+
+
+ Read an individual row of the next grid of results
+
+
+
+
+ Read an individual row of the next grid of results
+
+
+
+
+ Read an individual row of the next grid of results
+
+
+
+
+ Read an individual row of the next grid of results
+
+
+
+
+ Read the next grid of results
+
+
+
+
+ Read an individual row of the next grid of results
+
+
+
+
+ Read an individual row of the next grid of results
+
+
+
+
+ Read an individual row of the next grid of results
+
+
+
+
+ Read an individual row of the next grid of results
+
+
+
+
+ Read multiple objects from a single record set on the grid
+
+
+
+
+ Read multiple objects from a single record set on the grid
+
+
+
+
+ Read multiple objects from a single record set on the grid
+
+
+
+
+ Read multiple objects from a single record set on the grid
+
+
+
+
+ Read multiple objects from a single record set on the grid
+
+
+
+
+ Read multiple objects from a single record set on the grid
+
+
+
+
+ Read multiple objects from a single record set on the grid
+
+
+
+
+ Has the underlying reader been consumed?
+
+
+
+
+ The command associated with the reader
+
+
+
+
+ Dispose the grid, closing and disposing both the underlying reader and command.
+
+
+
+
+ Implement this interface to pass an arbitrary db specific parameter to Dapper
+
+
+
+
+ Add the parameter needed to the command before it executes
+
+ The raw command prior to execution
+ Parameter name
+
+
+
+ Parses a data reader to a sequence of data of the supplied type. Used for deserializing a reader without a connection, etc.
+
+
+
+
+ Parses a data reader to a sequence of data of the supplied type (as object). Used for deserializing a reader without a connection, etc.
+
+
+
+
+ Parses a data reader to a sequence of dynamic. Used for deserializing a reader without a connection, etc.
+
+
+
+
+ Gets the row parser for a specific row on a data reader. This allows for type switching every row based on, for example, a TypeId column.
+ You could return a collection of the base type but have each more specific.
+
+ The data reader to get the parser for the current row from
+ The type to get the parser for
+ The start column index of the object (default 0)
+ The length of columns to read (default -1 = all fields following startIndex)
+ Return null if we can't find the first column? (default false)
+ A parser for this specific object from this row.
+
+
+
+ Gets the row parser for a specific row on a data reader. This allows for type switching every row based on, for example, a TypeId column.
+ You could return a collection of the base type but have each more specific.
+
+ The data reader to get the parser for the current row from
+ The type to get the parser for
+ The start column index of the object (default 0)
+ The length of columns to read (default -1 = all fields following startIndex)
+ Return null if we can't find the first column? (default false)
+ A parser for this specific object from this row.
+
+ var result = new List<BaseType>();
+ using (var reader = connection.ExecuteReader(@"
+ select 'abc' as Name, 1 as Type, 3.0 as Value
+ union all
+ select 'def' as Name, 2 as Type, 4.0 as Value"))
+ {
+ if (reader.Read())
+ {
+ var toFoo = reader.GetRowParser<BaseType>(typeof(Foo));
+ var toBar = reader.GetRowParser<BaseType>(typeof(Bar));
+ var col = reader.GetOrdinal("Type");
+ do
+ {
+ switch (reader.GetInt32(col))
+ {
+ case 1:
+ result.Add(toFoo(reader));
+ break;
+ case 2:
+ result.Add(toBar(reader));
+ break;
+ }
+ } while (reader.Read());
+ }
+ }
+
+ abstract class BaseType
+ {
+ public abstract int Type { get; }
+ }
+ class Foo : BaseType
+ {
+ public string Name { get; set; }
+ public override int Type => 1;
+ }
+ class Bar : BaseType
+ {
+ public float Value { get; set; }
+ public override int Type => 2;
+ }
+
+
+
+
+ Identity of a cached query in Dapper, used for extensibility
+
+
+
+
+ Create an identity for use with DynamicParameters, internal use only
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The sql
+
+
+
+
+ The command type
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Compare 2 Identity objects
+
+
+
+
+
+
+ Implement this interface to pass an arbitrary db specific set of parameters to Dapper
+
+
+
+
+ Add all the parameters needed to the command just before it executes
+
+ The raw command prior to execution
+ Information about the query
+
+
+
+ Implements this interface to provide custom member mapping
+
+
+
+
+ Source DataReader column name
+
+
+
+
+ Target member type
+
+
+
+
+ Target property
+
+
+
+
+ Target field
+
+
+
+
+ Target constructor parameter
+
+
+
+
+ Extends IDynamicParameters with facilities for executing callbacks after commands have completed
+
+
+
+
+ Invoked when the command has executed
+
+
+
+
+ Extends IDynamicParameters providing by-name lookup of parameter values
+
+
+
+
+ Get the value of the specified parameter (return null if not found)
+
+
+
+
+ Implement this interface to perform custom type-based parameter handling and value parsing
+
+
+
+
+ Assign the value of a parameter before a command executes
+
+ The parameter to configure
+ Parameter value
+
+
+
+ Parse a database value back to a typed value
+
+ The value from the database
+ The type to parse to
+ The typed value
+
+
+
+ Implement this interface to change default mapping of reader columns to type members
+
+
+
+
+ Finds best constructor
+
+ DataReader column names
+ DataReader column types
+ Matching constructor or default one
+
+
+
+ Returns a constructor which should *always* be used.
+
+ Parameters will be default values, nulls for reference types and zero'd for value types.
+
+ Use this class to force object creation away from parameterless constructors you don't control.
+
+
+
+
+ Gets mapping for constructor parameter
+
+ Constructor to resolve
+ DataReader column name
+ Mapping implementation
+
+
+
+ Gets member mapping for column
+
+ DataReader column name
+ Mapping implementation
+
+
+
+ This is a micro-cache; suitable when the number of terms is controllable (a few hundred, for example),
+ and strictly append-only; you cannot change existing values. All key matches are on **REFERENCE**
+ equality. The type is fully thread-safe.
+
+
+
+
+ Represents a placeholder for a value that should be replaced as a literal value in the resulting sql
+
+
+
+
+ The text in the original command that should be replaced
+
+
+
+
+ The name of the member referred to by the token
+
+
+
+
+ Permits specifying certain SqlMapper values globally.
+
+
+
+
+ Resets all Settings to their default values
+
+
+
+
+ Specifies the default Command Timeout for all Queries
+
+
+
+
+ Indicates whether nulls in data are silently ignored (default) vs actively applied and assigned to members
+
+
+
+
+ Should list expansions be padded with null-valued parameters, to prevent query-plan saturation? For example,
+ an 'in @foo' expansion with 7, 8 or 9 values will be sent as a list of 10 values, with 3, 2 or 1 of them null.
+ The padding size is relative to the size of the list; "next 10" under 150, "next 50" under 500,
+ "next 100" under 1500, etc.
+
+
+ Caution: this should be treated with care if your DB provider (or the specific configuration) allows for null
+ equality (aka "ansi nulls off"), as this may change the intent of your query; as such, this is disabled by
+ default and must be enabled.
+
+
+
+
+ If set (non-negative), when performing in-list expansions of integer types ("where id in @ids", etc), switch to a string_split based
+ operation if there are more than this many elements. Note that this feautre requires SQL Server 2016 / compatibility level 130 (or above).
+
+
+
+
+ Base-class for simple type-handlers
+
+
+
+
+ Assign the value of a parameter before a command executes
+
+ The parameter to configure
+ Parameter value
+
+
+
+ Parse a database value back to a typed value
+
+ The value from the database
+ The typed value
+
+
+
+ Base-class for simple type-handlers that are based around strings
+
+
+
+
+ Parse a string into the expected type (the string will never be null)
+
+
+
+
+ Format an instace into a string (the instance will never be null)
+
+
+
+
+ Assign the value of a parameter before a command executes
+
+ The parameter to configure
+ Parameter value
+
+
+
+ Parse a database value back to a typed value
+
+ The value from the database
+ The typed value
+
+
+
+ Not intended for direct usage
+
+
+
+
+ Not intended for direct usage
+
+
+
+
+ Not intended for direct usage
+
+
+
+
+ Describes a reader that controls the lifetime of both a command and a reader,
+ exposing the downstream command/reader as properties.
+
+
+
+
+ Obtain the underlying reader
+
+
+
+
+ Obtain the underlying command
+
+
+
+