diff --git a/C sharp/marketconnectionNET/marketconnectionNET.sln b/C sharp/marketconnectionNET/marketconnectionNET.sln new file mode 100644 index 0000000..3a64e80 --- /dev/null +++ b/C sharp/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/C sharp/marketconnectionNET/marketconnectionNET/App.config b/C sharp/marketconnectionNET/marketconnectionNET/App.config new file mode 100644 index 0000000..7e40e94 --- /dev/null +++ b/C sharp/marketconnectionNET/marketconnectionNET/App.config @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/C sharp/marketconnectionNET/marketconnectionNET/Dashboard.Designer.cs b/C sharp/marketconnectionNET/marketconnectionNET/Dashboard.Designer.cs new file mode 100644 index 0000000..e57f29b --- /dev/null +++ b/C sharp/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/C sharp/marketconnectionNET/marketconnectionNET/Dashboard.cs b/C sharp/marketconnectionNET/marketconnectionNET/Dashboard.cs new file mode 100644 index 0000000..53bbf78 --- /dev/null +++ b/C sharp/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/C sharp/marketconnectionNET/marketconnectionNET/Dashboard.resx b/C sharp/marketconnectionNET/marketconnectionNET/Dashboard.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/C sharp/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/C sharp/marketconnectionNET/marketconnectionNET/Properties/AssemblyInfo.cs b/C sharp/marketconnectionNET/marketconnectionNET/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..416507d --- /dev/null +++ b/C sharp/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/C sharp/marketconnectionNET/marketconnectionNET/bin/Debug/Dapper.dll b/C sharp/marketconnectionNET/marketconnectionNET/bin/Debug/Dapper.dll new file mode 100644 index 0000000..ba449d4 Binary files /dev/null and b/C sharp/marketconnectionNET/marketconnectionNET/bin/Debug/Dapper.dll differ diff --git a/C sharp/marketconnectionNET/marketconnectionNET/bin/Debug/Dapper.xml b/C sharp/marketconnectionNET/marketconnectionNET/bin/Debug/Dapper.xml new file mode 100644 index 0000000..52f064f --- /dev/null +++ b/C sharp/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/C sharp/marketconnectionNET/marketconnectionNET/bin/Debug/marketconnectionNET.exe b/C sharp/marketconnectionNET/marketconnectionNET/bin/Debug/marketconnectionNET.exe new file mode 100644 index 0000000..fd75208 Binary files /dev/null and b/C sharp/marketconnectionNET/marketconnectionNET/bin/Debug/marketconnectionNET.exe differ diff --git a/C sharp/marketconnectionNET/marketconnectionNET/bin/Debug/marketconnectionNET.exe.CodeAnalysisLog.xml b/C sharp/marketconnectionNET/marketconnectionNET/bin/Debug/marketconnectionNET.exe.CodeAnalysisLog.xml new file mode 100644 index 0000000..55f1dc2 --- /dev/null +++ b/C sharp/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/C sharp/marketconnectionNET/marketconnectionNET/bin/Debug/marketconnectionNET.exe.config b/C sharp/marketconnectionNET/marketconnectionNET/bin/Debug/marketconnectionNET.exe.config new file mode 100644 index 0000000..e065e29 --- /dev/null +++ b/C sharp/marketconnectionNET/marketconnectionNET/bin/Debug/marketconnectionNET.exe.config @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/C sharp/marketconnectionNET/marketconnectionNET/bin/Debug/marketconnectionNET.exe.lastcodeanalysissucceeded b/C sharp/marketconnectionNET/marketconnectionNET/bin/Debug/marketconnectionNET.exe.lastcodeanalysissucceeded new file mode 100644 index 0000000..e69de29 diff --git a/C sharp/marketconnectionNET/marketconnectionNET/bin/Debug/marketconnectionNET.pdb b/C sharp/marketconnectionNET/marketconnectionNET/bin/Debug/marketconnectionNET.pdb new file mode 100644 index 0000000..1f04cc9 Binary files /dev/null and b/C sharp/marketconnectionNET/marketconnectionNET/bin/Debug/marketconnectionNET.pdb differ diff --git a/C sharp/marketconnectionNET/marketconnectionNET/cities.cs b/C sharp/marketconnectionNET/marketconnectionNET/cities.cs new file mode 100644 index 0000000..61c05a0 --- /dev/null +++ b/C sharp/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/C sharp/marketconnectionNET/marketconnectionNET/dataaccess.cs b/C sharp/marketconnectionNET/marketconnectionNET/dataaccess.cs new file mode 100644 index 0000000..f429271 --- /dev/null +++ b/C sharp/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/C sharp/marketconnectionNET/marketconnectionNET/helper.cs b/C sharp/marketconnectionNET/marketconnectionNET/helper.cs new file mode 100644 index 0000000..802e494 --- /dev/null +++ b/C sharp/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/C sharp/marketconnectionNET/marketconnectionNET/marketconnectionNET.csproj b/C sharp/marketconnectionNET/marketconnectionNET/marketconnectionNET.csproj new file mode 100644 index 0000000..5173d34 --- /dev/null +++ b/C sharp/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/C sharp/marketconnectionNET/marketconnectionNET/obj/Debug/CoreCompileInputs.cache b/C sharp/marketconnectionNET/marketconnectionNET/obj/Debug/CoreCompileInputs.cache new file mode 100644 index 0000000..a9da512 --- /dev/null +++ b/C sharp/marketconnectionNET/marketconnectionNET/obj/Debug/CoreCompileInputs.cache @@ -0,0 +1 @@ +734ee48575761c950000745219c57f0789d1b87b diff --git a/C sharp/marketconnectionNET/marketconnectionNET/obj/Debug/DesignTimeResolveAssemblyReferences.cache b/C sharp/marketconnectionNET/marketconnectionNET/obj/Debug/DesignTimeResolveAssemblyReferences.cache new file mode 100644 index 0000000..e42699a Binary files /dev/null and b/C sharp/marketconnectionNET/marketconnectionNET/obj/Debug/DesignTimeResolveAssemblyReferences.cache differ diff --git a/C sharp/marketconnectionNET/marketconnectionNET/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/C sharp/marketconnectionNET/marketconnectionNET/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache new file mode 100644 index 0000000..e2a94c8 Binary files /dev/null and b/C sharp/marketconnectionNET/marketconnectionNET/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache differ diff --git a/C sharp/marketconnectionNET/marketconnectionNET/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs b/C sharp/marketconnectionNET/marketconnectionNET/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs new file mode 100644 index 0000000..e69de29 diff --git a/C sharp/marketconnectionNET/marketconnectionNET/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs b/C sharp/marketconnectionNET/marketconnectionNET/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs new file mode 100644 index 0000000..e69de29 diff --git a/C sharp/marketconnectionNET/marketconnectionNET/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs b/C sharp/marketconnectionNET/marketconnectionNET/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs new file mode 100644 index 0000000..e69de29 diff --git a/C sharp/marketconnectionNET/marketconnectionNET/obj/Debug/marketconnectionNET.Dashboard.resources b/C sharp/marketconnectionNET/marketconnectionNET/obj/Debug/marketconnectionNET.Dashboard.resources new file mode 100644 index 0000000..6c05a97 Binary files /dev/null and b/C sharp/marketconnectionNET/marketconnectionNET/obj/Debug/marketconnectionNET.Dashboard.resources differ diff --git a/C sharp/marketconnectionNET/marketconnectionNET/obj/Debug/marketconnectionNET.csproj.FileListAbsolute.txt b/C sharp/marketconnectionNET/marketconnectionNET/obj/Debug/marketconnectionNET.csproj.FileListAbsolute.txt new file mode 100644 index 0000000..9390e5a --- /dev/null +++ b/C sharp/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/C sharp/marketconnectionNET/marketconnectionNET/obj/Debug/marketconnectionNET.csproj.GenerateResource.Cache b/C sharp/marketconnectionNET/marketconnectionNET/obj/Debug/marketconnectionNET.csproj.GenerateResource.Cache new file mode 100644 index 0000000..7f5489d Binary files /dev/null and b/C sharp/marketconnectionNET/marketconnectionNET/obj/Debug/marketconnectionNET.csproj.GenerateResource.Cache differ diff --git a/C sharp/marketconnectionNET/marketconnectionNET/obj/Debug/marketconnectionNET.exe b/C sharp/marketconnectionNET/marketconnectionNET/obj/Debug/marketconnectionNET.exe new file mode 100644 index 0000000..fd75208 Binary files /dev/null and b/C sharp/marketconnectionNET/marketconnectionNET/obj/Debug/marketconnectionNET.exe differ diff --git a/C sharp/marketconnectionNET/marketconnectionNET/obj/Debug/marketconnectionNET.pdb b/C sharp/marketconnectionNET/marketconnectionNET/obj/Debug/marketconnectionNET.pdb new file mode 100644 index 0000000..1f04cc9 Binary files /dev/null and b/C sharp/marketconnectionNET/marketconnectionNET/obj/Debug/marketconnectionNET.pdb differ diff --git a/C sharp/marketconnectionNET/marketconnectionNET/packages.config b/C sharp/marketconnectionNET/marketconnectionNET/packages.config new file mode 100644 index 0000000..cb48927 --- /dev/null +++ b/C sharp/marketconnectionNET/marketconnectionNET/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/C sharp/marketconnectionNET/packages/Dapper.1.50.2/Dapper.1.50.2.nupkg b/C sharp/marketconnectionNET/packages/Dapper.1.50.2/Dapper.1.50.2.nupkg new file mode 100644 index 0000000..c1fa0a8 Binary files /dev/null and b/C sharp/marketconnectionNET/packages/Dapper.1.50.2/Dapper.1.50.2.nupkg differ diff --git a/C sharp/marketconnectionNET/packages/Dapper.1.50.2/lib/net40/Dapper.dll b/C sharp/marketconnectionNET/packages/Dapper.1.50.2/lib/net40/Dapper.dll new file mode 100644 index 0000000..d68becd Binary files /dev/null and b/C sharp/marketconnectionNET/packages/Dapper.1.50.2/lib/net40/Dapper.dll differ diff --git a/C sharp/marketconnectionNET/packages/Dapper.1.50.2/lib/net40/Dapper.xml b/C sharp/marketconnectionNET/packages/Dapper.1.50.2/lib/net40/Dapper.xml new file mode 100644 index 0000000..436db12 --- /dev/null +++ b/C sharp/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/C sharp/marketconnectionNET/packages/Dapper.1.50.2/lib/net45/Dapper.dll b/C sharp/marketconnectionNET/packages/Dapper.1.50.2/lib/net45/Dapper.dll new file mode 100644 index 0000000..7ea80a0 Binary files /dev/null and b/C sharp/marketconnectionNET/packages/Dapper.1.50.2/lib/net45/Dapper.dll differ diff --git a/C sharp/marketconnectionNET/packages/Dapper.1.50.2/lib/net45/Dapper.xml b/C sharp/marketconnectionNET/packages/Dapper.1.50.2/lib/net45/Dapper.xml new file mode 100644 index 0000000..52f064f --- /dev/null +++ b/C sharp/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/C sharp/marketconnectionNET/packages/Dapper.1.50.2/lib/net451/Dapper.dll b/C sharp/marketconnectionNET/packages/Dapper.1.50.2/lib/net451/Dapper.dll new file mode 100644 index 0000000..ba449d4 Binary files /dev/null and b/C sharp/marketconnectionNET/packages/Dapper.1.50.2/lib/net451/Dapper.dll differ diff --git a/C sharp/marketconnectionNET/packages/Dapper.1.50.2/lib/net451/Dapper.xml b/C sharp/marketconnectionNET/packages/Dapper.1.50.2/lib/net451/Dapper.xml new file mode 100644 index 0000000..52f064f --- /dev/null +++ b/C sharp/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/C sharp/marketconnectionNET/packages/Dapper.1.50.2/lib/netstandard1.3/Dapper.dll b/C sharp/marketconnectionNET/packages/Dapper.1.50.2/lib/netstandard1.3/Dapper.dll new file mode 100644 index 0000000..c71e867 Binary files /dev/null and b/C sharp/marketconnectionNET/packages/Dapper.1.50.2/lib/netstandard1.3/Dapper.dll differ diff --git a/C sharp/marketconnectionNET/packages/Dapper.1.50.2/lib/netstandard1.3/Dapper.xml b/C sharp/marketconnectionNET/packages/Dapper.1.50.2/lib/netstandard1.3/Dapper.xml new file mode 100644 index 0000000..50c0e32 --- /dev/null +++ b/C sharp/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 + + + +